Sticky Bit

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.

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.

Bei ausführbaren Dateien

[Bearbeiten | Quelltext bearbeiten]

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

[Bearbeiten | Quelltext bearbeiten]

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.