3 votos

¿Cómo ver los permisos de los archivos de 6 dígitos?

Tengo una aplicación que se queja de los permisos de su directorio dentro de /Aplicaciones. Quiere que se establezca en 040775. Puedo arreglarlo ejecutando chmod 040775 pero no entiendo qué significan las dos primeras cifras. Sólo estoy corriendo chmod 775 no funciona, por lo que aparentemente estos 2 primeros dígitos son erróneos. ¿Qué son estos 2 dígitos y cómo puedo verlos en MacOS? Estoy buscando algo como ls -l . Estoy ejecutando High Sierra.

1voto

Oskar Puntos 1242

La respuesta corta es estat y pedir el campo de los permisos:

stat -f "%p" file

Es probable que la aplicación o las instrucciones o la memoria estén mal. Desde la página del manual, hay 4 dígitos en la representación octal para los modos en MacOS:

 Modes may be absolute or symbolic.  An absolute mode is an octal number
 constructed from the sum of one or more of the following values:

       4000    (the set-user-ID-on-execution bit) Executable files with
               this bit set will run with effective uid set to the uid of
               the file owner.  Directories with the set-user-id bit set
               will force all files and sub-directories created in them to
               be owned by the directory owner and not by the uid of the
               creating process, if the underlying file system supports
               this feature: see chmod(2) and the suiddir option to
               mount(8).
       2000    (the set-group-ID-on-execution bit) Executable files with
               this bit set will run with effective gid set to the gid of
               the file owner.
       1000    (the sticky bit) See chmod(2) and sticky(8).
       0400    Allow read by owner.
       0200    Allow write by owner.
       0100    For files, allow execution by owner.  For directories,
               allow the owner to search in the directory.
       0040    Allow read by group members.
       0020    Allow write by group members.
       0010    For files, allow execution by group members.  For directo-
               ries, allow group members to search in the directory.
       0004    Allow read by others.
       0002    Allow write by others.
       0001    For files, allow execution by others.  For directories
               allow others to search in the directory.

 For example, the absolute mode that permits read, write and execute by
 the owner, read and execute by group members, read and execute by others,
 and no set-uid or set-gid behaviour is 755 (400+200+100+040+010+004+001).

He hecho un archivo convenientemente llamado 040775 y he aplicado los permisos - puedes ver que el 040 borra todas las pegatinas (ya que es la parte 0775 la que importa), setUID, setGID bits para que obtengas 0775 si intentas poner 040775.

mac:foo me$ touch 040775
mac:foo me$ stat -f "%p" 040775 
100644
mac:foo me$ chmod 040775 040775
mac:foo me$ stat -f "%p" 040775 
100775
mac:foo me$ chmod 4775 040775 
mac:foo me$ ls -l
-rwsrwxr-x  1 me  wheel  0 May 10 20:30 040775
mac:foo me$ chmod 040775 040775
mac:foo me$ ls -l
-rwxrwxr-x  1 me  wheel  0 May 10 20:30 040775

He editado un poco lo anterior y no he hecho todo el stat y ls pero debería ayudarte a hurgar en los archivos existentes y comprobar si mi experiencia es que sólo los últimos 4 dígitos se interpretan como una máscara de bits octales para establecer los permisos como se documenta en la página man de chmod.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X