Das Sticky-Bit ist nützlich für Verzeichnisse, die von der Welt beschreibbar sind, z /tmp
. In diesen Verzeichnissen kann jeder eine Datei erstellen, daher muss das Verzeichnis von der Welt beschreibbar sein. Dies würde jedoch bedeuten, dass jeder auch eine Datei löschen könnte, selbst wenn diese nicht zu ihm gehört, da das Löschen einer Datei durch die Schreibberechtigung für das Verzeichnis gesteuert wird. Wenn ein Verzeichnis das Sticky-Bit hat, hat nur der Eigentümer einer Datei die Berechtigung, diese zu löschen.
In einem Verzeichnis mit Berechtigungen rwx------
oder rwxr-xr-x
kann nur der Eigentümer des Verzeichnisses eine Datei erstellen oder löschen. Wenn es Dateien gibt, die einem anderen Benutzer gehören (von root dorthin verschoben oder erstellt wurden, als das Verzeichnis über mehr offene Berechtigungen verfügte), ist es immer noch der Eigentümer des Verzeichnisses, der zum Löschen berechtigt ist, nicht der Eigentümer der Datei.
In einem Verzeichnis mit Berechtigungen rwxrwx---
können alle Mitglieder der Gruppe Dateien erstellen und löschen. Jedes Mitglied der Gruppe kann jede Datei löschen, auch wenn sie einem anderen Benutzer gehört. Wenn die Berechtigungen rwxrwx--T
stattdessen lauten (Großbuchstaben T
sind gleich t
, t
bedeuten aber , dass das x
Bit gesetzt und T
das x
Bit gelöscht ist), kann jedes Mitglied der Gruppe eine Datei erstellen, und Mitglieder der Gruppe können Dateien löschen, jedoch nur ihre eigenen Dateien .
Mit dem folgenden Befehl können Sie feststellen, welche Verzeichnisse das Sticky-Bit auf Ihrem System haben:
find / /run /run/lock /run/shm -xdev -path /usr -prune -o -perm -o+t -ls 2>/dev/null
Sie werden einige Verzeichnisse /tmp
finden, die für alle zugänglich sind, und einige Verzeichnisse, /var/spool/cron/crontabs
die für ein Systemprogramm reserviert sind, das als eigene Gruppe ( setgid ) ausgeführt wird, wobei das Sticky-Bit sicherstellt, dass das Programm nur Dateien im Auftrag von löschen kann Benutzer, dem sie gehören (was sicherstellt, dass das Programm Dateien nur im Namen des Benutzers erstellen kann, dem sie gehören, ist, dass das Programm als dieser Benutzer ausgeführt wird und nicht als root. Daher können keine Dateien erstellt werden, die anderen Benutzern gehören.)