Ich habe mich kürzlich gefragt, was der Unterschied zwischen drei- und vierstelligen numerischen Dateiberechtigungen ist. Ich stat --format "%a" $file_name
erhalte die numerischen Berechtigungen durch Ausführen. Was ist der Unterschied zwischen 0644 und 644?
bash
permissions
files
NerdOfCode
quelle
quelle
Antworten:
Die erste Ziffer in einer vierstelligen Berechtigung ist die Summe aus festgelegter Benutzer-ID (4), festgelegter Gruppen-ID (2) und Sticky (1). Eine dreistellige Berechtigung entspricht einer vierstelligen Berechtigung, bei der die erste Ziffer auf Null gesetzt ist. Somit:
Anwendungsbeispiele für die Berechtigungen der vierten Ziffer
Wenn eine Datei mit festgelegter Benutzer-ID ausgeführt wird, wird sie wie vom Eigentümer der Datei ausgeführt und nicht vom Benutzer, der die Ausführung vornimmt. So ist beispielsweise
/bin/mount
Common im Besitz von root und verfügt über Berechtigungen 4755, wobei die 4 angibt, dass sie, selbst wenn sie von einem normalen Benutzer ausgeführt wird, mit den Berechtigungen des Besitzers (root) ausgeführt wird.Das Festlegen der Gruppen-ID in einem Verzeichnis ist nützlich, um Dateien freizugeben.
Das Sticky-Bit wird in Verzeichnissen wie verwendet,
/tmp
damit alle Benutzer Dateien erstellen können, verhindert jedoch, dass Nicht-Eigentümer die Dateien anderer Personen löschen. Somit sind die Berechtigungen von/tmp
typischerweise 1777, wobei 1 bedeutet, dass das Sticky-Bit gesetzt ist.Dokumentation
Von
man chmod
:quelle