Buenos días, programadores!
Hoy vengo a enseñarles a usar el comando chmod
,
el cual permite cambiar los permisos para leer, escribir y
ejecutar un archivo o directorio. En este tutorial les mostraré las
diferentes formas en que se utiliza este comando, así como también el significado de los
números, que como veremos en realidad son bits, tales como
755 y qué efectos tienen estos números sobre los permisos de acceso
del archivo o directorio en cuestión. Sin más atrasos, a lo que vinimos!
Sintaxis
Primero que nada, la sintaxis de este comando es la siguiente:
chmod [opciones] permisos archivo/directorio
Por ejemplo:
chmod -R 755 myscripts/
chmod a+x script.sh
Opciones
Las opciones son un argumento opcional, por eso tienen la notación [opciones]. Las principales son:
- -R: aplica los cambios en los archivos y directorios de manera recursiva
- -v: lista información del comando aplicado a los archivos y directorios seleccionados
- -c: similar a -v pero solo muestra información de aquellos archivos o directorios que son modificados
- -f: oculta los mensajes de error
- –preserve-root evita que el comando actúe recursivamente sobre el directorio raíz /
En general las opciones de chmod son bastante básicas y la que comúnmente utilizaremos será -R.
Permisos – Modo texto
Tipos de permisos
Permisos de acceso independientes, también conocidos como permisos básicos.
- r – lectura
- w – escritura
- x – ejecución
Clases de usuarios
Conjunto de usuarios a los que serán asignados los permisos.
- u – el usuario dueño del archivo
- g – el grupo dueño del archivo
- o – los demás, es decir, aquellos que no pertenecen a las clases anteriores
- a – todos los anteriores, equivalente a
ugo
Operadores
Determinan el tipo de cambio o ajuste que se aplicará a los permisos.
- + añade los permisos
- – remueve los permisos
- = estable permisos exactos
Ejemplos
chmod -x script.sh
chmod a-x script.sh
Ambos comandos remueven los permisos de ejecución para todos los usuarios. En caso de no especificarse una clase de usuario como en el primer ejemplo, se asume a por defecto.
chmod gu+x script.sh
Este comando otorga permisos de ejecución al grupo y al usuario, únicamente.
chmod u=rw script.sh
Este comando otorga permisos de lectura y escritura al usuario. Si el usuario contaba anteriormente con permisos de ejecución, éste será revocado por el comando.
chmod g=u script.sh
Este comando copia los permisos del usuario al grupo. El comando puede leerse de la siguiente forma: los permisos del grupo son iguales a los permisos del usuario.
Permisos – Modo numérico
El comando chmod también permite establecer permisos mediante números. Con esta estructura, es posible editar los permisos del usuario, del grupo y los demás al mismo tiempo.
En el modo numérico cada número representa una combinación de permisos en particular. Dependendiendo de la posición del número, dicha combinación será aplicada a una clase de usuario u otra. El número más a la derecha representa los permisos de los demás, el número del centro representa los permisos del grupo, mientras que el número de la izquierda representa los permisos del usuario. Esto puede comprenderse mejor si observamos la siguiente imagen.
En la siguiente tabla se muestran los permisos equivalentes a cada número disponible en el modo numérico:
Permisos | Texto | Binario | Número |
---|---|---|---|
ninguno | — | 000 | 0 |
ejecución | –x | 001 | 1 |
escritura | -w- | 010 | 2 |
escritura y ejecución | -wx | 011 | 3 |
lectura | r– | 100 | 4 |
lectura y ejecución | r-x | 101 | 5 |
lectura y escritura | rw- | 110 | 6 |
lectura, escritura y ejecución | rwx | 111 | 7 |
El modo numérico funciona de la siguiente forma: si sólo especificamos un número, éste hará referencia a los demás, si especificamos dos números, estaremos estableciendo los permisos de los demás y del grupo y si especificamos tres números, estaremos estableciendo los permisos de los demás, del grupo y del usuario.
Ejemplos
chmod 755 script.sh
Este comando otorga permisos de lectura, escritura y ejecución al usuario. Y permisos de lectura y ejecución al grupo y los demás.
chmod 644 file.txt
Este comando otorga permisos de lectura y escritura al usuario. Y permisos de lectura al grupo y los demás.
chmod 3 script.sh
Este comando otorga permisos de escritura y ejecución únicamente a los demás.
Bueno mis developers, con esto llegamos al final del tutorial de chmod que a mi parecer es sumamente importante pues abarca la mayor parte del tema de permisos de archivos el cual es uno de los pilares del sistema operativo Linux.