chmod: ¿Qué significa el parámetro `+ a`?

16

Estaba siguiendo un tutorial y me dijo que corriera

sudo chmod +a "SOME_PARAMS" some/dir

Me sorprendió ver que fallar diciéndome

chmod: invalid mode: `+a'

Entonces me pregunto: ¿qué significa el +amodo? ¿Cómo lo traduciría en algo que Ubuntu entienda? Y también me gusta saber por qué no es universalmente compatible.

k0pernikus
fuente

Respuestas:

24

Nunca he visto +a, solo algo como lo chmod a+rque significa "agregar permisos de lectura a todos los usuarios" (propietario / usuario, grupo, otros).

De man 1 chmod:

El formato de un modo simbólico es [ugoa ...] [[+ - =] [perms ...] ...], donde perms es cero o más letras del conjunto rwxXst, o una sola letra del conjunto ugo Se pueden dar múltiples modos simbólicos, separados por comas.

Una combinación de las letras ugoa controla qué acceso de los usuarios al archivo cambiará: el usuario que lo posee (u), otros usuarios en el grupo del archivo (g), otros usuarios que no están en el grupo del archivo (o), o todos usuarios (a). Si no se da ninguno de estos, el efecto es como si se diera un a, pero los bits que se establecen en la máscara de usuario no se ven afectados.

Correcto, como dijiste en un comentario, es específico de Mac OS X. De http://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/chmod.1.html :

Las opciones de manipulación de ACL son las siguientes:

+ a
El modo + a analiza una nueva entrada de ACL del siguiente argumento en la línea de comandos y la inserta en la ubicación canónica en la ACL. Si la entrada proporcionada se refiere a una identidad ya incluida, las dos entradas se combinan.

Lekensteyn
fuente
55
No es tanto un error, pero más específica MacOS developer.apple.com/library/mac/#documentation/Darwin/Reference/...
k0pernikus