Es gibt 3 spezielle Berechtigungen, die für ausführbare Dateien und Verzeichnisse verfügbar sind. Diese sind:
1. SUID-Erlaubnis
2. SGID-Berechtigung
3. Klebriges Bit
Benutzerkennung (SUID) festlegen
Haben Sie jemals darüber nachgedacht, wie ein Nicht-Root-Benutzer sein eigenes Passwort ändern kann, wenn er keine Schreibberechtigung für die /etc/shadow-Datei hat. hmmm… interessant, nicht wahr? Gut, um den Trick zu verstehen, überprüfen Sie die Erlaubnis des /usr/bin/passwd-Befehls:
# ls -lrt /usr/bin/passwd -r-sr-sr-x 1 root sys 31396 Jan 20 2014 /usr/bin/passwd
– Wenn Sie genau prüfen, würden Sie die 2 S im Erlaubnisfeld finden. Das erste s steht für die SUID und das zweite für SGID.
– Wenn ein Befehl oder Skript mit gesetztem SUID-Bit ausgeführt wird, wird seine effektive UID die des Eigentümers der Datei und nicht die des Benutzers who läuft.
– Ein weiteres gutes Beispiel für SUID ist der Befehl su :
# ls -l /bin/su -rwsr-xr-x-x 1 root user 16384 Jan 12 2014 /bin/su
– Die setuid-Berechtigung, die als „s“ im Ausführungsfeld des Eigentümers angezeigt wird.
Wie setze ich SUID für eine Datei?
# chmod 4555 [path_to_file]Hinweis:
Wenn ein großes „S“ im Ausführungsfeld des Eigentümers erscheint, zeigt dies an, dass das setuid-Bit eingeschaltet ist und das Ausführungsbit „x“ für den Eigentümer der Datei ausgeschaltet oder verweigert ist.
Set-Gruppen-Identifikation (SGID)
SGID-Berechtigung für ausführbare Datei
– Die SGID-Berechtigung ist der SUID-Berechtigung ähnlich, der einzige Unterschied ist – wenn das Skript oder der Befehl mit aktivierter SGID ausgeführt wird, wird es ausgeführt, als wäre es ein Mitglied derselben Gruppe, in der die Datei Mitglied ist.
# ls -l /usr/bin/write -r-xr-sr-x 1 root tty 11484 Jan 15 17:55 /usr/bin/write
– Die setgid-Berechtigung wird im Ausführungsfeld der Gruppe als „s“ angezeigt.
Hinweis :– Wenn ein Kleinbuchstabe „l“ im Ausführungsfeld der Gruppe erscheint, zeigt dies an, dass das Setgid-Bit eingeschaltet ist und das Ausführungsbit für die Gruppe ausgeschaltet oder verweigert ist.
Wie setze ich die GUID für eine Datei?
# chmod 2555 [path_to_file]
SGID in einem Verzeichnis
– Wenn die SGID-Berechtigung für ein Verzeichnis festgelegt ist, gehören die im Verzeichnis erstellten Dateien zu der Gruppe, zu der das Verzeichnis gehört.
– Wenn beispielsweise ein Benutzer mit Schreibberechtigung für das Verzeichnis dort eine Datei erstellt, wird diese Datei ist Mitglied derselben Gruppe wie das Verzeichnis und nicht der Gruppe des Benutzers.
– Dies ist sehr nützlich beim Erstellen gemeinsam genutzter Verzeichnisse.
So legen Sie SGID für ein Verzeichnis fest
# chmod g+s [path_to_directory]
Sticky-Bit
– Das Sticky-Bit wird hauptsächlich für freigegebene Verzeichnisse verwendet.
– Es ist nützlich für freigegebene Verzeichnisse wie /var/tmp und /tmp weil Benutzer Dateien erstellen, lesen und ausführen können, die anderen Benutzern gehören, aber keine Dateien entfernen dürfen, die anderen Benutzern gehören.
– Zum Beispiel, wenn Benutzer Bob eine Datei namens /tmp/bob erstellt, kann andere Benutzer Tom diese Datei nicht löschen, selbst wenn das /tmp-Verzeichnis die Berechtigung 777 hat. Wenn das Sticky-Bit nicht gesetzt ist, kann Tom /tmp/bob löschen, da die /tmp/bob-Datei die Berechtigungen des übergeordneten Verzeichnisses erbt.
– Root-Benutzer (Natürlich!) und Eigentümer der Dateien können ihre eigenen Dateien entfernen.
Beispiel für Sticky Bit:
# ls -ld /var/tmp drwxrwxrwt 2 sys sys 512 Jan 26 11:02 /var/tmp
- T refers to when the execute permissions are off. - t refers to when the execute permissions are on.
Wie setze ich die Sticky-Bit-Berechtigung?
# chmod +t [path_to_directory] or # chmod 1777 [path_to_directory]