Das Sticky Bit (auch t-Bit oder Save Text Bit) ist ein erweitertes Dateirecht, d. h. ein Dateiattribut unter Unix. Es wirkt sich auf Verzeichnisse und Dateien unterschiedlich aus.
Notation
In der symbolischen Notation wird das Sticky-Bit an dem letzten der neun Zeichen notiert. Das x
wird dabei durch t
ersetzt. Ist das Execute-Recht für die Benutzerklasse Sonstige nicht gesetzt, was zur Folge hat, dass das neunte Zeichen ein -
ist, dann wird es durch ein groß geschriebenes T
an dieser Stelle ersetzt. Aus rwxrwxrwx
wird so rwxrwxrwt
, aus rwxr--r--
allerdings rwxr--r-T
.
In der Oktalnotation wird das Sticky-Bit wie alle drei erweiterten Dateirechte in eine Oktalziffer vor den drei Dateirechtoktalziffern notiert. Der dort stehenden Ziffer (die bei nicht gesetztem erweiterten Dateirecht 0
ist) wird der Wert 1
hinzugerechnet, wenn das Sticky-Bit gesetzt ist. Aus 0755
wird so 1755
, aus 4744
wird 5744
.
Wirkung
Bei ausführbaren Dateien
In seiner ursprünglichen Bedeutung wurde das Sticky-Bit bei ausführbaren Dateien, also Programmen mit Ausführ-Dateirechten, angewendet. Es bewirkte, dass das Programm nach Beendigung des dazugehörigen Prozesses nicht aus dem Arbeitsspeicher entfernt und somit bei einem erneuten Aufruf des Programms nicht noch einmal vom Sekundärspeicher (z. B. Festplatte) in den Primärspeicher (Arbeitsspeicher) geladen und neu reloziert werden musste. Dies führte zu Geschwindigkeitsvorteilen bei großen Programmen, die häufig genutzt werden, beispielsweise Editoren.
Diese Funktion ist als historisch zu betrachten, sie ist auf modernen Unix-Derivaten in der historischen Form nicht mehr implementiert. So wurde z. B. mit Einführung von SunOS 4.0 1988 das Sticky Bit verwendet, um auf einem NFS-Server zu verhindern, dass geschriebene Dateiinhalte gecacht werden. Damit wurde ein Performance-Problem bei Verwendung von NFS-basierten Auslagerungsdateien behoben.
Bei Verzeichnissen
Das Sticky-Bit ermöglicht das Anlegen gemeinsam genutzter Verzeichnisse.
Hat ein Verzeichnis beispielsweise für alle Benutzer alle Dateirechte gesetzt (777
bzw. rwxrwxrwx
), dann kann jeder Benutzer in diesem Verzeichnis Dateien (und Unterverzeichnisse) anlegen, aber auch jede Datei darin löschen. Durch Setzen des Sticky-Bits wird der Zugriff auf die Dateien in diesem Verzeichnis eingeschränkt, so dass nur noch der Eigentümer einer Datei (oder der Eigentümer des Verzeichnisses) diese Datei löschen oder umbenennen darf. Die Rechte zum Lesen und Schreiben der Dateien bleiben davon unberührt. Verwendung findet das Sticky-Bit zum Beispiel bei /tmp
.
Siehe auch
- Unix-Dateirechte
- Weitere erweiterte Dateirechte: Setgid-Bit, Setuid-Bit