GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie funktioniert das Sticky Bit?

SUID

Das klebrige Bit Wird auf ausführbare Programme angewendet, die das System kennzeichnen, um ein Abbild des Programms im Speicher zu behalten, nachdem das Programm seine Ausführung beendet hat.

Aber ich weiß nicht, was es im Speicher gespeichert ist. Und wie kann ich sie in diesem Fall sehen?

Akzeptierte Antwort:

Das ist wahrscheinlich eines meiner lästigsten Dinge, die die Leute die ganze Zeit durcheinander bringen. Das SUID/GUID-Bit und das Sticky-Bit sind zwei völlig verschiedene Dinge.

Wenn Sie einen man chmod ausführen Sie können über die SUID und Sticky-Bits lesen. Die Manpage ist auch hier verfügbar.

Hintergrund

Auszug

Die Buchstaben rwxXst Dateimodus-Bits für die betroffenen Benutzer auswählen:lesen
(r), schreiben (w), ausführen (oder nach Verzeichnissen suchen) (x), nur ausführen/suchen
wenn die Datei ein Verzeichnis ist oder bereits hat Ausführungsberechtigung für einige Benutzer
(X), Benutzer- oder Gruppen-ID bei Ausführung(en) festlegen , eingeschränktes Lösch-Flag oder Sticky Bit (t) .

SUID/GUID

Was die obige Manpage zu sagen versucht, ist, 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 einnehmen kann, in dem das x wird ein s. In diesem Fall wird diese Datei bei Ausführung (wenn es sich um ein Programm und nicht nur um ein Shell-Skript handelt) mit den Berechtigungen des Besitzers oder der Gruppe der Datei ausgeführt.

Wenn also die Datei root gehört und das SUID-Bit eingeschaltet ist, wird das Programm als root ausgeführt. Auch wenn Sie es als normaler Benutzer ausführen. Das Gleiche 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 hat die entsprechenden Privilegien.
Zusätzliche Einschränkungen können dazu führen, dass die set-user-ID- und set-group-ID-Bits
von MODE oder RFILE ignoriert werden. Dieses Verhalten hängt von der Richtlinie
und der Funktionalität des zugrunde liegenden chmod-Systemaufrufs ab. Im Zweifelsfall
prüfen Sie das zugrunde liegende Systemverhalten.

chmod behält die Set-User-ID- und Set-Group-ID-Bits eines Verzeichnisses bei, es sei denn, Sie geben ausdrücklich etwas anderes an. Sie können die Bits mit
symbolischen Modi wie u+s und g-s setzen oder löschen, und Sie können die Bits
mit einem numerischen Modus setzen (aber nicht löschen).

SUID/GUID-Beispiele

keine Suid/Führung – nur die Bits rwxr-xr-x eingestellt sind.

$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suid &ausführbares Bit des Benutzers aktiviert (Kleinbuchstaben s) – die Bits rwsr-x-r-x eingestellt sind.

$ chmod u+s b.pl 
$ ls -lt b.pl 
-rwsr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suid aktiviert &ausführbares Bit deaktiviert (großes S) – die Bits rwSr-xr-x eingestellt sind.

$ chmod u-x b.pl
$ ls -lt b.pl 
-rwSr-xr-x 1 root root 179 Jan  9 01:01 b.pl

Ausführbares Bit von GUID und Gruppe aktiviert (kleines s) – die Bits rwxr-sr-x eingestellt sind.

$ chmod g+s b.pl
$  ls -lt b.pl 
-rwxr-sr-x 1 root root 179 Jan  9 01:01 b.pl

Guid aktiviert &ausführbares Bit deaktiviert (Großbuchstabe S) – die Bits rwxr-Sr-x eingestellt sind.

$ chmod g-x b.pl
$  ls -lt b.pl 
-rwxr-Sr-x 1 root root 179 Jan  9 01:01 b.pl

klebriges Bit

Das Sticky-Bit wird dagegen als t bezeichnet , wie zum Beispiel mit /tmp Verzeichnis:

$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp

Dieses Bit hätte immer als „eingeschränktes Löschbit“ bezeichnet werden sollen, da es genau das bedeutet. Wenn dieses Modusbit aktiviert ist, erstellt es ein Verzeichnis, in dem Benutzer nur Dateien und Verzeichnisse darin löschen können, deren Eigentümer sie sind.

Verwandte:Papierkorb mit 80.000 Dateien. „Papierkorb leeren“ funktioniert nicht!?

Auszug

EINGESCHRÄNKTES LÖSCHFLAG ODER STICKY BIT

Das Restricted Delete Flag oder Sticky Bit ist ein einzelnes Bit, dessen
Interpretation vom Dateityp abhängt. Bei Verzeichnissen
hindert es unprivilegierte Benutzer daran, eine Datei im
Verzeichnis zu entfernen oder umzubenennen, es sei denn, sie besitzen die Datei oder das Verzeichnis; dies wird als
eingeschränktes Lösch-Flag für das Verzeichnis bezeichnet und wird häufig in
weltweit beschreibbaren Verzeichnissen wie /tmp gefunden. Bei normalen Dateien auf einigen
älteren Systemen speichert das Bit das Textbild des Programms auf dem Auslagerungsgerät,
damit es schneller geladen wird, wenn es ausgeführt wird; Dies wird als Sticky-Bit bezeichnet.


Linux
  1. Was ist NGINX? Wie funktioniert es?

  2. Wie funktioniert Awk ‘!a[$0]++’?

  3. Der Zweck von .bashrc und wie funktioniert es?

  4. Wie funktionieren die Interna von Sudo?

  5. Wie funktioniert der Tee-Befehl?

Wie funktioniert der Exit-Befehl auf einem Unix-Terminal?

Wie funktioniert Swap-Speicher in Linux?

Wie funktioniert Rm? Was macht Rm?

Wie funktioniert sig_atomic_t eigentlich?

Wie funktioniert eine Linux-GUI auf der untersten Ebene?

Wie funktioniert die Anzeige von Linux?