GNU/Linux >> LINUX-Kenntnisse >  >> Linux

UNIX / Linux:So verwenden Sie Sticky Bit für Verzeichnis und Datei

Sie würden das Sticky-Bit hauptsächlich auf Verzeichnisse in UNIX / Linux setzen.

Wenn Sie das Sticky-Bit auf ein Verzeichnis setzen, können andere Benutzer die Dateien (oder Unterverzeichnisse) in diesem Verzeichnis nicht löschen oder umbenennen.

Wenn das Sticky-Bit für ein Verzeichnis gesetzt ist, können nur der Eigentümer und der Root-Benutzer die Dateien oder Verzeichnisse in diesem Verzeichnis löschen/umbenennen.

1. Setzen Sie das Sticky-Bit auf Verzeichnis

Das folgende Beispiel aktiviert das Sticky-Bit für ein Verzeichnis.

Verwenden Sie den Befehl chmod, um das Sticky-Bit zu setzen. Wenn Sie die Oktalzahlen in chmod verwenden, geben Sie 1 ein, bevor Sie andere nummerierte Berechtigungen angeben, wie unten gezeigt. Das folgende Beispiel gibt rwx-Berechtigungen für Benutzer, Gruppen und andere (und fügt auch das Sticky-Bit zum Verzeichnis hinzu).

$ chmod 1777 dir

Oder Sie können einem bestehenden Verzeichnis nur Sticky Bit zuweisen (ohne andere Benutzer, Gruppen und andere Privilegien zu berühren), indem Sie den Befehl chmod verwenden, wie unten gezeigt.

$ chmod +t dir

Sobald das Sticky-Bit einem Verzeichnis zugewiesen ist, sehen Sie (t) als letztes Zeichen in der Berechtigung. In diesem Beispiel ist es drwxrwxrwt.

$ ls -ld /home/bala/dir
drwxrwxrwt 2 bala bala 4096 2011-01-28 14:09 /home/bala/dir
$ ls -l dir
total 8
-rwxrwxrwx 1 bala   bala   20 2011-01-28 14:12 bala.txt
-rwxrwxrwx 1 guest guest 41 2011-01-28 14:13 guest.txt

Da dir im obigen Beispiel die rwx-Berechtigung für alle hat, dürfen alle anderen Benutzer ihre Dateien oder Verzeichnisse in diesem Verzeichnis erstellen. Aber selbst wenn die Unterverzeichnisse oder Dateien unter dir die rwx-Berechtigung für alle haben, kann nur der Besitzer dieser Dateien und Verzeichnisse diese Dateien und Verzeichnisse löschen oder umbenennen. Andere Benutzer können es wegen Sticky Bit nicht löschen oder umbenennen.

Im obigen Beispiel hat bala.txt rwx für Benutzer, Gruppen und andere. Aber wenn ein Gastbenutzer versucht, die Datei bala.txt zu löschen, sieht er die Meldung „Vorgang nicht erlaubt“, wie unten gezeigt.

$ su guest
Password:
$ cd /home/bala/dir1
$ rm bala.txt
rm: cannot remove `bala.txt': Operation not permitted

Bitte beachten Sie, dass /tmp das Sticky-Bit standardmäßig aktiviert hat. Das ist Ihnen vielleicht noch nicht aufgefallen. Jetzt wissen Sie, warum das /tmp-Verzeichnis das Sticky-Bit aktiviert haben soll.

$ ls -ld /tmp
drwxrwxrwt 3 root root 4096 Jan 31 08:29 /tmp

Gehen Sie wie folgt vor, um das Sticky-Bit aus einem Verzeichnis zu entfernen.

$ chmod -t dir

2. Setzen Sie das Sticky-Bit auf File

Das Festlegen des Sticky-Bits in einer Datei ist ziemlich nutzlos und bewirkt nichts. Bei einigen der älteren *nix-Varianten wird nach der ersten Ausführung eine Sticky-Bit-aktivierte ausführbare Datei in den Auslagerungsspeicher geladen, was die gesamte nachfolgende Ausführung beschleunigt. Dies ist nicht mehr wahr.

Aus Wikipedia:

Currently, this behavior is only operative in HP-UX, NetBSD, and UnixWare. 
Solaris appears to have abandoned this in 2005.[citation needed] The 4.4-Lite 
release of BSD retained the old sticky bit behavior but it has been subsequently 
dropped from OpenBSD (as of release 3.7) and FreeBSD (as of release 2.2.1); 
it remains in NetBSD. 

No version of Linux has ever supported the traditional behavior.

Linux
  1. So machen Sie Dateien und Verzeichnisse unlöschbar, sogar von Root in Linux

  2. So installieren und verwenden Sie Flatpak unter Linux

  3. Was ist Sticky Bit, SUID und SGID unter Linux?

  4. So installieren und verwenden Sie Traceroute unter Linux

  5. Warum verwenden wir „./“ (Punkt-Schrägstrich), um eine Datei unter Linux/Unix auszuführen?

So installieren und verwenden Sie PuTTY unter Linux

So installieren und verwenden Sie phpMyAdmin unter Linux

So erstellen und verwenden Sie eine Auslagerungsdatei unter Linux

So installieren und verwenden Sie den fd-Befehl unter Linux

So installieren und verwenden Sie Nu Shell unter Linux

Wie verwende ich gzip unter Linux?