
Ich habe mich kürzlich gefragt, was der Unterschied zwischen drei- und vierstelligen numerischen Dateiberechtigungen ist. Die numerischen Berechtigungen erhalte ich durch Ausführen von stat --format "%a" $file_name
.Was ist der Unterschied zwischen 0644 und 644?
Antwort1
Die erste Ziffer einer vierstelligen Erlaubnis ist die Summe ausBenutzer-ID festlegen (4)Gruppen-ID festlegen(2 undklebrig(1). Eine dreistellige Berechtigung ist genau wie eine vierstellige Berechtigung, bei der die erste Ziffer auf Null gesetzt ist. Somit:
- 0644 ist genau dasselbe wie 644.
- 1644 ist wie 644, aber das Sticky-Bit ist ebenfalls gesetzt
- 4644 ist wie 644, aber das gesetzte Benutzer-ID-Bit ist ebenfalls gesetzt.
Anwendungsbeispiele für die vierstelligen Berechtigungen
Wenn eine Datei mit festgelegter Benutzer-ID ausgeführt wird, wird sie wie vom Eigentümer der Datei ausgeführt und nicht wie vom ausführenden Benutzer. So /bin/mount
ist beispielsweise im Allgemeinen root Eigentümer und hat die Berechtigungen 4755, wobei die 4 bedeutet, dass die Datei auch bei Ausführung durch einen normalen Benutzer mit den Berechtigungen des Eigentümers (root) ausgeführt wird.
Das Festlegen einer Gruppen-ID für ein Verzeichnis ist zum Freigeben von Dateien nützlich.
Das Sticky Bit wird bei Verzeichnissen wie verwendet, /tmp
damit alle Benutzer Dateien erstellen können, aber Nichteigentümer daran gehindert werden, die Dateien anderer Benutzer zu löschen. Daher /tmp
sind die Berechtigungen für normalerweise 1777, wobei 1 bedeutet, dass das Sticky Bit gesetzt ist.
Dokumentation
Aus man chmod
:
Ein numerischer Modus besteht aus einer bis vier Oktalziffern (0-7), die durch Addition der Bits mit den Werten 4, 2 und 1 abgeleitet werden. Auslasste Ziffern werden als führende Nullen betrachtet. Die erste Ziffer wählt die festgelegte Benutzer-ID (4) und Gruppen-ID (2) sowie die Attribute für eingeschränktes Löschen oder Sticky (1) aus. Die zweite Ziffer wählt die Berechtigungen für den Benutzer aus, dem die Datei gehört: Lesen (4), Schreiben (2) und Ausführen (1); die dritte wählt die Berechtigungen für andere Benutzer in der Gruppe der Datei mit denselben Werten aus; und die vierte für andere Benutzer, die nicht in der Gruppe der Datei sind, mit denselben Werten.