Comandos Linux chmod

Cambiando permisos linux con chmod Segunda Parte (Modo octal)

Para mi los permisos en formato octal son mas sencillos por que puede determinar rápidamente cuales son los permisos exactos que quieres establecer.

En este modo debes indicar un valor para cada tipo de usuarios: usuario, grupo y otros. La forma de poner estos permisos es con un número entre 0 (cero) y 8 (ocho) por cada tipo de usuarios, por ejemplo:

chmod 750 archivo

Donde el primer dígito (el siete) representa los permisos para el usuario, el segundo (el cinco) para el grupo y el tercero (el cero) para otros usuarios. Te explico como puedes saber que significa cada numero.

Lo primero que tienes que hacer es saber que hay un valor único para cada permiso, lectura es 4, escritura 2 y ejecución 1. Esto te lo muestro en la siguiente tabla:

Lectua Escritura Ejecución / Acceso
r w x
4 2 1

Viendo esto si quieres establecer un permiso solo tienes que sumar el valor, por ejemplo si quieres lectura, escritura y ejecución sumarás los tes, así:

Lectura   Escritura   Ejecución / Acceso   Valor Ocatal
r w x
4 + 2 + 1 = 7

Si quieres tener un permiso de solo lectura, sin permiso de  escritura ni ejecución entonces podrías hacer la suma así:

Lectura   Escritura   Ejecución / Acceso   Valor Ocatal
r w x
4 + 0 + 0 = 4

La tabla completa de posibles permisos es esta:

Lectua Escritura Ejecución  Valor Representación Permiso
r w x
0 0 1  1 – – x Ejecución
0 2 0 2 – w – Escritura
 0 2 1 3 – w x Escritura y Ejecución
4 0 0 4 r – – Lectura
4 0 1 5 r – x Lectura y Ejecución
 4 2 0 6 r w – Lectura y Escritura
4 2 1 7 r w x Lectura, Escritura y Ejecución
 0 0 0 0 – – – Ningún permiso

Recuerda que los permisos que tiene cero quiere decir que se «niegan» lo que tiene el valor para cada permisos se «otorgan» entonces si queremos poner permisos a un archivo de lectura(4) y escritura(2) solo para el usuario y el grupo, sin permisos para otros podemos ponerlos así:

chmod 660 archivo

Veamos los mismos ejemplos del modo anterior.

Cambiar permisos de escritura y lectura para el usuario y solo lectura para el grupo y otros, aplicando estos permisos a todos los archivos con extensión .txt en el directorio actual. Este es el comando:

chmod 644 archivo
$ ls -l
-rw-rw-rw- 1 lm lm 0 Jul 8 12:20 archivo de ejemplo.txt
-rw-rw-rw- 1 lm lm 0 Jul 8 12:20 Archivo de Ejemplo.txt
$ chmod 644 *.txt
$ ls -l
-rw-r--r-- 1 lm lm 0 Jul 8 12:20 archivo de ejemplo.txt
-rw-r--r-- 1 lm lm 0 Jul 8 12:20 Archivo de Ejemplo.txt

Para quitar todos los permisos a un archivo puedes utilizar el modo a= te pongo un ejemplo:

chmod 000 archivo
$ ls -l
-rwxrwxrwx 1 lm lm 0 Jul 8 12:20 ejecutable
$ chmod 000 ejecutable
$ ls -l
---------- 1 lm lm 0 Jul 8 12:20 ejecutable

Quitar permisos para un archivo y solo permitir leer el archivo al propietario, esto puede ser utilizado para los certificados de cifrado.

chmod 400 archivo
$ ls -l
-rw-r--r-- 1 lm lm 5 Jul 13 12:17 centificado.pem
$ chmod 400 *.pem
$ ls -l
-r-------- 1 lm lm 5 Jul 13 12:17 centificado.pem

Para dar permisos de ejecución a un archivo de forma que cualquier usuario pueda usar ese programa y arrancarlo

chmod 755 archivo
$ ls -l
-rw------- 1 lm lm 0 Jul 8 12:20 ejecutable
$ chmod 755 ejecutable
$ ls -l
-rwxr-xr-x 1 lm lm 0 Jul 8 12:20 ejecutable

Pero si solo debe ser ejecutable para el usuario debería usarse este otro comando

$ ls -l
-rw------- 1 lm lm 0 Jul 8 12:20 ejecutable
$ chmod 700 ejecutable
$ ls -l
-rwx------ 1 lm lm 0 Jul 8 12:20 ejecutable

¿Que ocurre cuando un archivo tiene todos los permisos para todos los usuarios y deseas que solo pueda ser ejecutable por el propietario? podemos usar el comando de esta forma:

chmod 700 archivo
$ ls -l
-rwxrwxrwx 1 lm lm 0 Jul 8 12:20 ejecutable
$ chmod 700 ejecutable
$ ls -l
-rwx------ 1 lm lm 0 Jul 8 12:20 ejecutable

Puedes darte cuenta que ahora es mas fácil leer esa cadena de rwxrwxrwx o rw-r–r– pues puedes cambiar r por un 4, w por un 2 y x por un 1 (uno) y de pronto todo tiene sentido, ayúdate de la tabla que te muestro arriba y practica cambiando los permisos de un archivo.

Este tema de los permisos no es sencillo, así que si de primero leíste todo esto no te preocupes si no le entiendes del todo, a mi me pasó cuando iniciaba en Linux, pero solo es cuestión de que comiences a empaparte con Linux y cuando comienzas a usar o a configurar el sistema vas entendiendo esto de los permisos cuando ves los ejemplos prácticos de como afectan los permisos el comportamiento o la seguridad de un sistema. Todo es cuestión de ser persistente y de probar.

Acuérdate que mientras no estés frente a un sistema de algún cliente o empresa que facture miles de dolares no tienes de que preocuparte si pruebas y cambias algunos permisos que luego no funcionen o que causen que no se puedan ver archivos o lo que sea. Te puedes equivocar las veces que sea necesario para que ganes experiencia con esto de los permisos y si algo pudiera salir mal aprendiste y puedes comenzar de nuevo en tu sistema linux.

Tu Servidor y Amigo

Luis Armando Medina

Sígueme en Twitter: @larmedina
Sígueme en Facebook: dame un like LuisMedinaMLM

This entry was posted in Comandos Linux and tagged , , . Bookmark the permalink.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*