AddThis Social Bookmark Button

Aunque en el Tutorial Básico de Unix se ha explicado el uso del chmod y los permisos de los archivos, a continuación presentamos algunos de los usos del comando chmod en Unix.

Uso absoluto

Sintaxis:
chmod nnn archivo ...
n:
número del 0 al 7 para la notación binaria del rwx (lectura-escritura-ejecución) intercambiando cada permiso por un 1. (rwx=111 binario = 7, r--=100 binario = 4)

Sin dudarlo, la forma más sencilla (al menos para escribir en la línea de comando) para dar o quitar permisos a los archivos y directorios es sin duda la notación binaria.

Ejemplo: Para dar todos los permisos (rwx=7) al propietario del directorio, todos los permisos (rwx=7) al grupo y únicamente permisos de lectura y ejecución (r-x=5) al resto de los usuarios se utilizaría el comando

$ chmod 775 directorio

Pero si quisieramos dar los mismos permisos al directorio y todos los directorios y archivos dentro del directorio de forma recursiva se agrega el parámetro: -R

$ chmod -R 775 directorio

Uso simbólico

Sintaxis:
chmod archivo ...
es una lista separada por comas (sin espacios) que describe los permisos de la forma simbólica: [quien] operador [permisos].

[quien] puede ser alguno de los siguientes valores:

  • u para indicar el usuario (propietario);
  • g para indicar el grupo;
  • o para indicar el resto; y
  • a para todos los permisos.

Los operadores pueden ser:

  • + Para agregar permisos;
  • - Para quitar permisos; o
  • = Para asignar permisos absoluto,

Por último algunos de los permisos son:

  • r para lectura;
  • w para escritura;
  • x para ejecución; o
  • l bloqueo al acceso (locking)

Un ejemplo de la como se utiliza el modo simbólico para dar permisos de ejecución de un archivo al propietario y al grupo:

$ ls -l archivo1.sh
-rw-rw-r-- 1 usuario staff 263 agto 15 2008 archivo1.sh
$ chmod u+x,g+x archivo1.sh
-rwxrwxr-- 1 usuario staff 263 agto 15 2008 archivo1.sh

Este es más funcional para quitar un permiso en específico a algun directorio o archivo. También es válido con el parámetro -R para ejecutarlo de manera recursiva.