Quel est le premier chiffre octal chmod dans une valeur à quatre chiffres?

40

Parfois, je vois des chmodcommandes qui utilisent quatre chiffres octaux au lieu de trois - à quoi sert le premier chiffre facultatif? Par exemple, chmod 777est équivalent à chmod a+rwx; à quoi sert la même commande chmod 2777?

Prosseek
la source
1
C'est une bonne question, j'ai donc essayé de la généraliser
Michael Mrozek
3
Le «quatrième chiffre octal chmod» est un peu déroutant, le chiffre en question est en fait le premier lors de la lecture de gauche à droite.
Jsbillings

Réponses:

44

Veuillez noter que cela chmod 777 filenameéquivaut à chmod 0777 filenamedans cet exemple.

Le premier chiffre octal définit les bits setuid, setgid et sticky (voir cet article pour plus de détails sur setuid / setgid). octal 2 signifie définir l'ID de groupe sur le fichier. Donc, l'équivalent serait de faire un chmod a+rwx filename, alors chmod g+s filename. La chmod page d'information explique cela plus en détail.

jsbillings
la source
5
Presque toutes les implémentations de chmod (1) peuvent utiliser des virgules dans les arguments en mode symbolique. Ainsi, votre équivalent de 2777 peut se faire en une seule commande: chmod a+rwx,g+s filename. Ou, plus exactement ( en étant sûr d'effacer les bits suid et collant comme mode numérique serait): chmod a=rwx,g+s filename.
Chris Johnsen