Ein Sticky-Bit ist ein Berechtigungsbit für eine Datei oder ein Verzeichnis, mit dem nur der Eigentümer der Datei / des Verzeichnisses oder der Root-Benutzer die Datei löschen oder umbenennen kann. Kein anderer Benutzer hat die Berechtigung, die von einem anderen Benutzer erstellte Datei zu löschen.
Gelegentlich benötigen Sie ein Linux-Verzeichnis, das von allen Benutzern des Linux-Systems zum Erstellen von Dateien verwendet werden kann. Benutzer können in diesem Verzeichnis nach Belieben Dateien erstellen, löschen oder umbenennen.
Was ist nun, wenn ein Benutzer versehentlich oder absichtlich eine Datei löscht (oder umbenennt), die von einem anderen Benutzer in diesem Verzeichnis erstellt wurde?
Nun, um diese Art von Problemen zu vermeiden, wird das Konzept des klebrigen Bits verwendet. Da / tmp für diesen Zweck verwendet wird. Um das obige Szenario zu vermeiden, verwenden Sie / tmp Sticky Bit.
Zum Beispiel:
mkdir demo
chmod 777 demo
Ich habe auch zwei Dateien mit unterschiedlichen Benutzern in diesem Ordner mit der Berechtigung 777 erstellt.
ls -ld demo
drwxrwxrwx 2 guru guru 4096 Mar 11 18:17 demo
ls -l demo
-rwxrwxrwx 1 abhi abhi 0 Mar 11 17:11 file1
-rwxrwxrwx 1 anshu anshu 0 Mar 11 18:15 file2
Schalten Sie jetzt das klebrige Stück ein
chmod +t demo/
ls -ld demo
drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo
Was passiert nun, wenn ein Benutzer (abhi) den 2. Benutzer (anshu) umbenennen möchte?
mv /home/guru/demo/file2 /home/guru/demo/file3
mv: cannot move '/home/guru/demo/file2' to '/home/guru/demo/file3': Operation not permitted
Der Ursprung des Sticky Bits
Unter Linux wird das Sticky-Bit nur für Verzeichnisse verwendet, die oben beschrieben wurden. In der Vergangenheit wurde es für etwas völlig anderes in regulären Dateien verwendet, und daher kommt der Name.
Wenn ein Programm ausgeführt wird, dauert es einige Zeit, bis das Programm in den Speicher geladen ist und der Benutzer es tatsächlich verwenden kann. Wenn ein Programm, zum Beispiel ein Editor, häufig von Benutzern verwendet wird, war die Startverzögerung damals ein Overhead.
Um diese Zeitverzögerung zu verbessern, wurde das Sticky-Bit eingeführt. Das Betriebssystem prüfte, ob das Textsegment der ausführbaren Datei im Auslagerungsbereich belassen wurde, wenn das Sticky-Bit für eine ausführbare Datei aktiviert ist. Dies machte es einfach, die ausführbare Datei beim erneuten Ausführen des Programms wieder in den RAM zu laden, wodurch die Zeitverzögerung minimiert wurde.
Moderne Systeme wie Linux verwalten ihren Cache mit ausführbaren Dateien und anderen Dateien automatisch und benötigen dafür kein Sticky Bit.
Quelle: "Linux Sticky Bit-Konzept mit Beispielen erklärt" bei The Geek Stuff