Recientemente, un colega me pidió que lo usara chmod
con letras en lugar de números. Aparte de la obvia ventaja de legibilidad, ¿existe alguna razón particular para utilizar letras en lugar de números?
Respuesta1
La chmod
notación simbólica es más detallada en comparación con la notación octal, lo que permite la modificación de bits de modo específicos sin tocar otros bits de modo.
La notación simbólica consta de tres componentes:
chmod [references][operator][modes] file
Consiste references
en una combinación de letras ugoa
, que especifican qué acceso de usuario al file
se modificará: el usuario propietario ( u
), otros usuarios en el grupo del archivo ( g
), otros usuarios que no están en el grupo del archivo ( o
), o todos los usuarios. ( a
). Si references
se omite el componente, el valor predeterminado es para todos los usuarios, pero solo umask
se modifican los permisos permitidos por ellos.
Esto +
operator
hace que los bits de modo de archivo especificados se agreguen a los bits de modo de archivo existentes de cada archivo; -
hace que sean eliminados; y =
hace que se agreguen y se eliminen bits no especificados, excepto setuid
los setgid
bits establecidos para directorios, a menos que se especifique explícitamente.
El mode
consiste en una combinación de las letras rwxXst
, que corresponden a leer ( r
), escribir ( w
), ejecutar (o buscar directorios) ( x
), ejecutar/buscar solo si el archivo es un directorio o ya tiene permiso de ejecución para algún usuario ( X
), setuid
o setgid
(dependiendo de las referencias especificadas) ( s
) y un indicador de eliminación restringida o un bit adhesivo ( t
). Alternativamente, puede mode
constar de una de las letras ugo
, en cuyo caso mode
corresponde a los permisos actualmente otorgados al propietario ( u
), a los miembros del grupo del archivo ( g
) o a los permisos de los usuarios en ninguna de las categorías anteriores ( o
).
Ejemplos
Suponiendo que el permiso establecido file
es0764/-rwxrw-r--
Eliminar el permiso de otros usuarios que no estén en el grupo del archivo:
Octal:
chmod 760 file
Tenga en cuenta que los permisos existentes que no se modifican deben repetirse cuando se utiliza la notación octal.
Simbólico:
chmod o-rwx file
Con la notación simbólica, los permisos de archivos existentes no importan.
Colocar setuid
:
Octal:
chmod 4764 file
Simbólico:
chmod u+s file
Colocar setgid
:
- Octal:
chmod 2764 file
- Simbólico
chmod g+s file
Respuesta2
El uso de letras le permite activar y desactivar bits individuales sin cambiar los otros bits.
Supongamos que tengo el siguiente directorio:
drwxrwsr-x 6 f261-01a g261-01a 4096 Sep 12 17:51 /home/teams/261/f261-01a
Si quiero desactivar el permiso de lectura para otros y quiero usar números, podría hacerlo rápidamente chmod 751
. Excepto que acabo de desactivar el bit setgid en el directorio. Ups.
Sin embargo, si uso chmod o-r
, solo desactivo el bit de lectura que quería y el bit setgid en el directorio permanece configurado.
También es útil si desea activar setuid, setgid o sticky bits en un archivo o directorio. Especialmente si lo haces tan raramente que tienes problemas para recordar qué bit es cuál en el 4º octeto.
Entonces, depende de lo que estés haciendo. Todavía prefiero usar números cuando solo estoy configurando permisos y, para empezar, no me importa lo que haya allí. Pero si alterna bits individuales, la notación de letras es mucho más sencilla.