Dies ist wahrscheinlich eine meiner lästigsten Sachen, die die Leute die ganze Zeit durcheinander bringen. Das SUID / GUID-Bit und das Sticky-Bit sind zwei völlig verschiedene Dinge.
Wenn Sie eine tun man chmod
, können Sie über die SUID und Sticky-Bits lesen. Die Manpage ist auch hier verfügbar .
Hintergrund
Auszug
Die Buchstaben rwxXst wählen Dateimodusbits für die betroffenen Benutzer aus: Lesen (r), Schreiben (w), Ausführen (oder Suchen nach Verzeichnissen) (x), Ausführen / Suchen nur, wenn die Datei ein Verzeichnis ist oder für einige Benutzer bereits Ausführungsberechtigungen hat Benutzer (X), Benutzer- oder Gruppen-ID bei Ausführung (en) , eingeschränktes Löschflag oder
Sticky-Bit (t) festlegen .
SUID / GUID
Die obige Manpage versucht zu sagen, dass die Position, die das x-Bit im rwxrwxrwx für das Benutzeroktal (1. Gruppe von rwx) und das Gruppenoktal (2. Gruppe von rwx) einnimmt, einen zusätzlichen Zustand annehmen kann, in dem das x wird ein s. In diesem Fall wird diese Datei bei der Ausführung (wenn es sich um ein Programm und nicht nur um ein Shell-Skript handelt) mit den Berechtigungen des Eigentümers oder der Gruppe der Datei ausgeführt.
Wenn sich die Datei also im Besitz von root befindet und das SUID-Bit aktiviert ist, wird das Programm als root ausgeführt. Auch wenn Sie es als normaler Benutzer ausführen. Gleiches gilt für das GUID-Bit.
Auszug
SETUID UND SETGID BITS
chmod löscht das Set-Group-ID-Bit einer regulären Datei, wenn die Gruppen-ID der Datei nicht mit der effektiven Gruppen-ID des Benutzers oder einer der zusätzlichen Gruppen-IDs des Benutzers übereinstimmt, es sei denn, der Benutzer verfügt über entsprechende Berechtigungen. Zusätzliche Einschränkungen können dazu führen, dass die Bits set-user-ID und set-group-ID von MODE oder RFILE ignoriert werden. Dieses Verhalten hängt von der Richtlinie und der Funktionalität des zugrunde liegenden chmod-Systemaufrufs ab. Überprüfen Sie im Zweifelsfall das zugrunde liegende Systemverhalten.
chmod behält die Bits set-user-ID und set-group-ID eines Verzeichnisses bei, sofern Sie nicht ausdrücklich etwas anderes angeben. Sie können die Bits mit symbolischen Modi wie u + s und gs setzen oder löschen, und Sie können die Bits mit einem numerischen Modus setzen (aber nicht löschen).
SUID / GUID-Beispiele
no suid / guid - nur die Bits rwxr-xr-x werden gesetzt.
$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan 9 01:01 b.pl
suid & users ausführbares Bit aktiviert (Kleinbuchstaben) - die Bits rwsr-xrx werden gesetzt.
$ chmod u+s b.pl
$ ls -lt b.pl
-rwsr-xr-x 1 root root 179 Jan 9 01:01 b.pl
suid enabled & executable bit disabled (Großbuchstabe S) - die Bits rwSr-xr-x werden gesetzt.
$ chmod u-x b.pl
$ ls -lt b.pl
-rwSr-xr-x 1 root root 179 Jan 9 01:01 b.pl
Das ausführbare Bit von guid & group ist aktiviert (Kleinbuchstaben s) - die Bits rwxr-sr-x sind gesetzt.
$ chmod g+s b.pl
$ ls -lt b.pl
-rwxr-sr-x 1 root root 179 Jan 9 01:01 b.pl
guid enabled & executable bit disabled (Großbuchstabe S) - die Bits rwxr-Sr-x werden gesetzt.
$ chmod g-x b.pl
$ ls -lt b.pl
-rwxr-Sr-x 1 root root 179 Jan 9 01:01 b.pl
klebriges Stück
Der Sticky - Bit auf der anderen Seite wird bezeichnet als t
, wie mit dem /tmp
Verzeichnis:
$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp
Dieses Bit hätte immer das "eingeschränkte Löschbit" heißen sollen, da es genau das ist, was es wirklich bedeutet. Wenn dieses Modusbit aktiviert ist, wird ein Verzeichnis so erstellt, dass Benutzer nur Dateien und Verzeichnisse darin löschen können, deren Eigentümer sie sind.
Auszug
EINGESCHRÄNKTE LÖSCHFLAGGE ODER KLEBENDER Keks
Das eingeschränkte Löschflag oder Sticky-Bit ist ein einzelnes Bit, dessen Interpretation vom Dateityp abhängt. Bei Verzeichnissen wird
verhindert , dass nicht privilegierte Benutzer eine Datei im Verzeichnis entfernen oder umbenennen , es sei denn, sie besitzen die Datei oder das Verzeichnis. Dies wird das eingeschränkte Löschflag für das Verzeichnis genannt und ist häufig in weltweit beschreibbaren Verzeichnissen wie / tmp zu finden. Bei normalen Dateien auf einigen älteren Systemen speichert das Bit das Textbild des Programms auf dem Auslagerungsgerät, damit es beim Ausführen schneller geladen wird. Dies nennt man das klebrige Stück.