Was ist die erste Zahl in einem 4-stelligen chmod-Argument (z. B. `chmod 4555`)?

20

Wenn ich ein Programm installiere, wird mir empfohlen, dies zu tun chmod 4555. Okay, ich weiß über Werte Bescheid, wenn ich nur drei Zahlen benutze. Beispielsweise

chmod 555 test-file

werde geben

-r-xr-xr-x

4 zum Schreiben, 2 zum Lesen und 1 zum Ausführen. Aber wenn ich das tue:

chmod 4555 test-file

es gibt mir

-r-sr-xr-x

Also xgeändert zu s. Was soll das heißen

Mas Bagol
quelle
1
auch hier erklärt: askubuntu.com/a/550947/72216 ("about the s- flag")
Jacob Vlijm
@JacobVlijm hat es auch ausführlicher mit den anderen "speziellen" Bits unten erklärt
Thomas Ward

Antworten:

29

Es gibt tatsächlich 4 Attributmengen, mit denen Sie über arbeiten können chmod.

Special, User/Owner, Group, Und Othersin dieser Reihenfolge, wenn sie mit der Vierzahl chmods arbeitet, mit der ersten spezieller Anzahl Bits ist, die festgelegt werden können.

chmod 4555 entspricht dem Folgenden:

  • Set UID bit - Führt die Datei als Eigentümer aus, unabhängig davon, welcher Benutzer sie ausführt
  • Benutzer / Besitzer: Read, Execute
  • Gruppe: Read, Execute
  • Andere: Read, Execute

Die sin Ihrer "lesbaren" Zeichenfolge für Berechtigungen angegebene Zeichenfolge gibt an, dass das SetUID(unten erläuterte) Bit gesetzt ist.


Tatsächlich können wir das chmodBerechtigungsargument mit vier Ziffern wie folgt in bestimmte Deskriptoren aufteilen und anhand der Mathematik ermitteln, was a 4im ersten Abschnitt, a 5im nächsten Abschnitt usw. bedeuten würde.

Denken Sie daran, das ####ist Special User/Owner Groupund Othersin dieser Reihenfolge.

Für SpecialAttribute (die erste Zahl in einem vierstelligen chmodArgument):

  • Set UID- Führen Sie die Datei unabhängig vom Benutzer, der sie ausführt, als Eigentümer aus (wird sin der Zeichenfolge für lesbare Berechtigungen für den UserAbschnitt angezeigt) = +4 ( --sunter User/Owner)
  • Set GID- Führen Sie die Datei als Gruppe aus, unabhängig davon, von welchem ​​Benutzer / welcher Gruppe sie ausgeführt wird (wird sin der für Menschen lesbaren Berechtigungszeichenfolge für den GroupAbschnitt angezeigt) = +2 ( --sunter Group)
  • Sticky Bit- NUR FÜR VERZEICHNISSE EFFEKTIV - Wenn diese Option aktiviert ist, kann nur der Eigentümer rootdes Verzeichnisses und das Verzeichnis sowie nur der Dateieigentümer oder rootdie darin enthaltenen Dateien gelöscht werden. (Wird wie tin der für Menschen lesbaren Berechtigungszeichenfolge für OthersAbschnitt angezeigt) = +1 ( --tunter Others)

Für User/Owner, Groupund OthersAttribute (die letzten drei Ziffern in einem Vier-Zahl chmodArgumente):

  • Read= +4 ( r--)
  • Write= +2 ( -w-)
  • Execute(für Dateien) oder 'Enter Into / List Items' (für Verzeichnisse) = +1 ( --x)
Thomas Ward
quelle
7

Es heißt das SETUIDBit. Wenn es von chmod 4555 test-file(in Ihrem Fall) festgelegt wird, test-filekann es von jedem Benutzer ausgeführt werden, als ob der Benutzer der Eigentümer der Datei ist.

Wenn das SETUIDBit gesetzt ist, nimmt die effektive Benutzer-ID ( EUID) des Benutzers, der nicht 0744berechtigt ist , die Datei anderweitig auszuführen (z. B. mit normalen Berechtigungen ), die EUID des Dateieigentümers und kann die Datei ausführen.

heemayl
quelle