Es gibt 3 spezielle Berechtigungen, die für ausführbare Dateien und Verzeichnisse zur Verfügung stehen. Diese sind :
1. SUID-Berechtigung
2. SGID-Berechtigung
3. Sticky bit
- Set-user Identification (SUID)
- Wie setzt man SUID auf eine Datei?
- Set-group identification (SGID)
- SGID-Berechtigung für ausführbare Datei
- Wie wird die GUID für eine Datei festgelegt?
- SGID für ein Verzeichnis
- Wie man die SGID eines Verzeichnisses setzt
- Sticky Bit
- Beispiel für Sticky Bit :
- Wie setzt man die Sticky Bit Berechtigung?
Set-user Identification (SUID)
Haben Sie schon einmal darüber nachgedacht, wie ein Nicht-Root-Benutzer sein eigenes Passwort ändern kann, wenn er keine Schreibberechtigung für die Datei /etc/shadow hat. hmmm… interessant, oder? Nun, um den Trick zu verstehen, überprüfen Sie die Berechtigung des Befehls /usr/bin/passwd :
# ls -lrt /usr/bin/passwd-r-sr-sr-x 1 root sys 31396 Jan 20 2014 /usr/bin/passwd
– Wenn Sie genau hinschauen, werden Sie die 2 S im Berechtigungsfeld finden. Das erste S steht für die SUID und das zweite für die SGID.
– Wenn ein Befehl oder ein Skript mit gesetztem SUID-Bit ausgeführt wird, wird seine effektive UID die des Besitzers der Datei und nicht die des Benutzers, der es ausführt.
– Ein weiteres gutes Beispiel für SUID ist der su-Befehl :
# ls -l /bin/su -rwsr-xr-x-x 1 root user 16384 Jan 12 2014 /bin/su
– Die setuid-Berechtigung wird als „s“ im Ausführungsfeld des Eigentümers angezeigt.
Wie setzt man SUID auf eine Datei?
# chmod 4555
Wenn ein großes „S“ im Ausführungsfeld des Eigentümers erscheint, bedeutet dies, dass das Setuid-Bit aktiviert ist und das Ausführungsbit „x“ für den Eigentümer der Datei deaktiviert oder verweigert ist.
Set-group identification (SGID)
SGID-Berechtigung für ausführbare Datei
– Die SGID-Berechtigung ähnelt der SUID-Berechtigung, der einzige Unterschied ist, dass das Skript oder der Befehl mit eingeschalteter SGID so ausgeführt wird, als ob es/er Mitglied der gleichen Gruppe wäre, 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 als „s“ im Ausführungsfeld der Gruppe angezeigt.
– Wenn ein Kleinbuchstabe „l“ im Execute-Feld der Gruppe erscheint, zeigt dies an, dass das setgid-Bit aktiviert ist und das Execute-Bit für die Gruppe deaktiviert oder verweigert ist.
Wie wird die GUID für eine Datei festgelegt?
# chmod 2555
SGID für ein Verzeichnis
– Wenn die SGID-Berechtigung für ein Verzeichnis gesetzt ist, gehören Dateien, die in dem Verzeichnis erstellt werden, zu der Gruppe, zu der das Verzeichnis gehört.
– Wenn zum Beispiel ein Benutzer mit Schreibberechtigung in dem Verzeichnis eine Datei erstellt, gehört diese Datei zu der gleichen Gruppe wie das Verzeichnis und nicht zu der Gruppe des Benutzers.
– Dies ist sehr nützlich bei der Erstellung von gemeinsam genutzten Verzeichnissen.
Wie man die SGID eines Verzeichnisses setzt
# chmod g+s
Sticky Bit
– Das Sticky Bit wird hauptsächlich bei gemeinsam genutzten Verzeichnissen verwendet.
– Es ist nützlich für gemeinsam genutzte Verzeichnisse wie /var/tmp und /tmp, weil Benutzer Dateien erstellen, lesen und ausführen können, die anderen Benutzern gehören, aber nicht berechtigt sind, Dateien zu löschen, die anderen Benutzern gehören.
– Wenn zum Beispiel der Benutzer bob eine Datei mit dem Namen /tmp/bob erstellt, kann der andere Benutzer tom diese Datei nicht löschen, selbst wenn das Verzeichnis /tmp die Berechtigung 777 hat. Wenn das Sticky-Bit nicht gesetzt ist, kann tom /tmp/bob löschen, da die Datei /tmp/bob die Rechte des übergeordneten Verzeichnisses erbt.
– Der Benutzer root (natürlich!) und der Besitzer der Dateien können ihre eigenen Dateien löschen.
Beispiel für Sticky Bit :
# ls -ld /var/tmpdrwxrwxrwt 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 setzt man die Sticky Bit Berechtigung?
# chmod +t or # chmod 1777