3 votes

Comment voir les autorisations de fichiers à 6 chiffres ?

J'ai une application qui se plaint des permissions de son répertoire à l'intérieur de /Applications. Il veut être défini à 040775. Je peux résoudre ce problème en exécutant chmod 040775 mais je ne comprends pas ce que signifient les deux premiers chiffres. Je suis en train de courir chmod 775 ne fonctionne pas, donc apparemment ces 2 premiers chiffres sont faux. Quels sont ces 2 chiffres, et comment puis-je les afficher sous MacOS ? Je cherche quelque chose comme ls -l . J'utilise High Sierra.

1voto

Oskar Points 1242

La réponse courte est stat et demander le champ des autorisations :

stat -f "%p" file

Cette application, ces instructions ou cette mémoire sont probablement erronées. D'après la page du manuel, il y a 4 chiffres dans la représentation octale pour les modes sur 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).

J'ai créé un fichier commodément nommé 040775 et j'ai appliqué les permissions - vous pouvez voir que le 040 efface tous les bits sticky (car c'est la partie 0775 qui compte), setUID, setGID de sorte que vous obtenez 0775 si vous essayez de mettre 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

J'ai édité un peu ce qui précède et je n'ai pas fait tout ce qui était nécessaire. stat y ls mais cela devrait vous aider à manipuler des fichiers existants et à tester si mon expérience selon laquelle seuls les 4 derniers chiffres sont interprétés comme un masque de bits octal pour définir les permissions comme documenté dans la page de manuel chmod.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X