Hajo Ruehl (QZXT0Z) Creation date: 27.03.2007 - 16:36:47 Subject: Sticky Bit Key values: sticky bit permissions http://de.wikipedia.org/wiki/Sticky_Bit 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. 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 das ein großgeschriebenes T an diese Stelle gesetzt. 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 keinem gesetzten erweiterten Dateirecht 0 ist) wird der Wert 1 hinzuaddiert, wenn das Sticky-Bit gesetzt ist. Aus 0755 wird so 1775, aus 4744 wird 5744. Wirkung Bei ausführbaren Dateien In seiner ursprünglichen Bedeutung wurde das Sticky-Bit bei ausführbaren Dateien, d. h. 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, z.B. Editoren. Diese Funktion ist als historisch zu betrachten, da sie auf modernen Unix-Derivaten meist nicht mehr implementiert ist. Bei Verzeichnissen Das Sticky-Bit ermöglicht das Anlegen von gemeinsam genutzten Verzeichnissen. Hat ein Verzeichnis beispielsweise für alle Benutzerklassen alle Dateirechte gesetzt (777/rwxrwxrwx), dann kann jeder Benutzer in dieses Verzeichnis schreiben, aber auch jede Datei darin löschen. Durch Setzen des Sticky-Bits wird es (zusätzlich zum Eigentümer des Verzeichnisses und dem Superuser) nur dem Eigentümer einer Datei erlaubt, diese zu bearbeiten oder zu löschen. Beispiele ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 0777 samp_sticky;ll samp_sticky -rwxrwxrwx 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 1777 samp_sticky;ll samp_sticky -rwxrwxrwx 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 2777 samp_sticky;ll samp_sticky -rwxrwsrwx 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 3777 samp_sticky;ll samp_sticky -rwxrwsrwx 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 4777 samp_sticky;ll samp_sticky -rwsrwxrwx 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 5777 samp_sticky;ll samp_sticky -rwsrwxrwx 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 6777 samp_sticky;ll samp_sticky -rwsrwsrwx 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 7777 samp_sticky;ll samp_sticky -rwsrwsrwx 1 oramss dba 0 Mar 27 16:02 samp_sticky If it is a capital S, then the execute bit ¿below¿ is not set (http://kianga.kcore.de/2004/10/03/linux_faq): ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 0666 samp_sticky;ll samp_sticky -rw-rw-rw- 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 1666 samp_sticky;ll samp_sticky -rw-rw-rw- 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 2666 samp_sticky;ll samp_sticky -rw-rwSrw- 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 3666 samp_sticky;ll samp_sticky -rw-rwSrw- 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 4666 samp_sticky;ll samp_sticky -rwSrw-rw- 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 5666 samp_sticky;ll samp_sticky -rwSrw-rw- 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 6666 samp_sticky;ll samp_sticky -rwSrwSrw- 1 oramss dba 0 Mar 27 16:02 samp_sticky ep160817_bck:SMDB:/usr/users/oramss/hru/Samples$ chmod 7666 samp_sticky;ll samp_sticky -rwSrwSrw- 1 oramss dba 0 Mar 27 16:02 samp_sticky