it-swarm.com.de

Wie funktioniert das klebrige Stück?

SUID

Das Sticky Bit wird auf ausführbare Programme angewendet, die das System kennzeichnen, um ein Image des Programms nach Beendigung des Programms im Speicher zu behalten.

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

153
lotusirous

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

Wenn Sie ein man chmod Sie können über die SUID und Sticky-Bits lesen. Die Manpage ist hier verfügbar ebenfalls.

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 bereits Ausführungsberechtigung für einen Benutzer (X) hat. Benutzer- oder Gruppen-ID bei Ausführung (en) festlegen , eingeschränktes Löschflag oder Sticky Bit (t) .

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 an 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 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 Bit GUID).

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 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 g-s 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 & Benutzers ausführbares Bit aktiviert (Kleinbuchstaben) - die Bits rwsr-x-r-x 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 & ausführbares Bit deaktiviert (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) - die Bits rwxr-sr-x werden 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 & ausführbares Bit deaktiviert (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

Das klebrige Bit hingegen wird als t bezeichnet, beispielsweise mit /tmp Verzeichnis:

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

Dieses Bit sollte immer als "eingeschränktes Löschbit" bezeichnet werden, da dies 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 OR STICKY BIT

Das eingeschränkte Löschflag oder Sticky-Bit ist ein einzelnes Bit, dessen Interpretation vom Dateityp abhängt. Für Verzeichnisse ist es
verhindert, dass nicht privilegierte Benutzer eine Datei im Verzeichnis entfernen oder umbenennen, es sei denn, sie besitzen die Datei oder das Verzeichnis. Dies wird als eingeschränktes Löschflag für das Verzeichnis bezeichnet 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 wird als klebriges Bit bezeichnet.

200
slm

"Das Sticky-Bit, das auf ausführbare Programme angewendet wird, die das System markieren, um ein Image des Programms im Speicher zu behalten, nachdem das Programm beendet wurde."

Ich denke, das sind ziemlich veraltete Informationen, heute ignorieren die meisten modernen Unixe das. Unter Linux ist das Sticky-Bit nur für Verzeichnisse relevant. Siehe hier und den recht informativen Wikipedia-Artikel .

Wie auch immer, in diesem alten Verhalten wurde das Bild (nur der "Code", nicht die Daten) nur im virtuellen Speicher aufbewahrt - normalerweise ausgetauscht, nicht im realen Speicher, um es beim nächsten Mal schneller auszuführen.

8
leonbloy

Was sind klebrige Teile?

Ein Sticky-Bit ist ein Berechtigungsbit, das in einem Verzeichnis festgelegt ist, in dem nur der Eigentümer der Datei in diesem Verzeichnis oder der Root-Benutzer die Datei löschen oder umbenennen kann. Kein anderer Benutzer verfügt über die erforderlichen Berechtigungen zum Löschen der von einem anderen Benutzer erstellten Datei.

Dies ist eine Sicherheitsmaßnahme, um das Löschen kritischer Ordner und ihres Inhalts (Unterverzeichnisse und Dateien) zu vermeiden, obwohl andere Benutzer über vollständige Berechtigungen verfügen.

3
chandrakumar.M

Hier ist ein gutes Tutorial mit Beispielen und Erklärungen. Der Schlüssel zum Verständnis ist das Oktalsystem. Linux Sticky Bits Tutorial mit funktionierenden Beispielen .

0
CMP