Wofür steht die erste chmod-Oktalziffer in einem vierstelligen Wert?

40

Manchmal sehe ich chmodBefehle, die vier statt drei Oktalziffern verwenden - wofür ist die optionale erste Ziffer? Zum Beispiel chmod 777ist gleichbedeutend mit chmod a+rwx; Wofür ist derselbe Befehl chmod 2777?

Prosseek
quelle
1
Das ist eine gute Frage, deshalb habe ich versucht, sie ein wenig zu verallgemeinern
Michael Mrozek
3
Die 'vierte chmod-Oktalziffer' ist etwas verwirrend, die fragliche Ziffer ist tatsächlich die erste, wenn von links nach rechts gelesen wird.
Jsbillings

Antworten:

44

Bitte beachten Sie, dass dies chmod 777 filenamedas Äquivalent zu chmod 0777 filenamein diesem Beispiel ist.

Die erste Oktalziffer setzt die Bits setuid, setgid und sticky ( weitere Informationen zu setuid / setgid finden Sie in diesem Artikel ). Oktal 2 bedeutet, die Gruppen-ID für die Datei festzulegen. So würde das äquivalent sein ein zu tun chmod a+rwx filename, dann chmod g+s filename. Die chmod Infoseite erklärt dies genauer.

jsbillings
quelle
5
Nahezu alle Implementierungen von chmod (1) können Kommas in Symbolic-Mode-Argumenten verwenden. So kann Ihr Äquivalent von 2777 in einem Befehl: chmod a+rwx,g+s filename. Oder genauer (wobei Sie die setuid- und Haftbits als numerischer Modus löschen würde): chmod a=rwx,g+s filename.
Chris Johnsen