Die Verwaltung von Datei- und Verzeichnisrechten ist ein zentraler Bestandteil der Linux-Systemadministration. Ein tiefes Verständnis der grundlegenden Berechtigungen sowie der Sonderrechte wie SUID, SGID und dem Sticky-Bit ist notwendig, um Dateien und Verzeichnisse effektiv zu verwalten. Mit Tools wie setfacl
können Administratoren präzise Berechtigungen für Benutzer und Gruppen festlegen, was besonders in Umgebungen mit mehreren Benutzern auf gemeinsamen Verzeichnissen wichtig ist. In diesem Artikel wurden sowohl die Grundlagen der Berechtigungen als auch fortgeschrittene Verwaltungsmöglichkeiten mit setfacl
erläutert.
Inhaltsverzeichnis
- Übersicht der Berechtigungen
- Hauptkategorien der Berechtigungen
- Arten der Berechtigungen
- Zusammenhang der Berechtigungen
- Oktale und symbolische Darstellung
- Sonderrechte
- Symbole für Sonderrechte
- Berechtigungen ändern
- Beispiel für den Zugriff mehrerer Benutzer auf ein Verzeichnis
1. Übersicht der Berechtigungen
Rechte | chmod (oktal) | umask (oktal) | Symbolisch | Binäre Entsprechung |
---|---|---|---|---|
Lesen, Schreiben und Ausführen | 7 | 0 | rwx | 111 |
Lesen und Schreiben | 6 | 1 | rw- | 110 |
Lesen und Ausführen | 5 | 2 | r-x | 101 |
Nur Lesen | 4 | 3 | r– | 100 |
Schreiben und Ausführen | 3 | 4 | -wx | 011 |
Nur Schreiben | 2 | 5 | -w- | 010 |
Nur Ausführen | 1 | 6 | –x | 001 |
Keine Rechte | 0 | 7 | — | 000 |
2. Hauptkategorien der Berechtigungen
Unter Linux werden Berechtigungen für Dateien und Verzeichnisse in drei Kategorien unterteilt:
- Owner (Besitzer): Der Benutzer, dem die Datei oder das Verzeichnis gehört.
- Group (Gruppe): Eine Gruppe von Benutzern, die für die Datei oder das Verzeichnis spezielle Rechte haben.
- Other (Andere): Alle anderen Benutzer, die nicht zum Besitzer oder zur Gruppe gehören.
3. Arten der Berechtigungen
Die Berechtigungen definieren, welche Aktionen Benutzer auf eine Datei oder ein Verzeichnis ausführen können:
- r (read): Leserechte – Ermöglicht das Lesen der Datei oder das Auflisten des Inhalts eines Verzeichnisses.
- w (write): Schreibrechte – Ermöglicht das Bearbeiten einer Datei oder das Erstellen neuer Dateien in einem Verzeichnis.
- x (execute): Ausführrechte – Ermöglicht das Ausführen einer Datei oder das Betreten eines Verzeichnisses.
4. Zusammenhang der Berechtigungen
Die Berechtigungen werden in der Reihenfolge Besitzer, Gruppe und Andere angezeigt. Ein Beispiel: rwxr-xr--
- Besitzer:
rwx
(Lese-, Schreib- und Ausführrechte) - Gruppe:
r-x
(Lese- und Ausführrechte) - Andere:
r--
(Nur Leserechte)
5. Oktale und symbolische Darstellung
Berechtigungen können sowohl symbolisch als auch oktal dargestellt werden.
Symbolische Darstellung
In der symbolischen Darstellung wird die Berechtigung durch Buchstaben dargestellt:
- rwx (Lesen, Schreiben, Ausführen)
- rw- (Lesen, Schreiben)
- r– (Nur Lesen)
Oktale Darstellung
In der oktalen Darstellung wird jede Berechtigung durch eine Zahl ersetzt:
r = 4
,w = 2
,x = 1
- rwx = 7, rw- = 6, r– = 4
6. Sonderrechte
Neben den grundlegenden Berechtigungen gibt es drei spezielle Dateirechte:
- Set-UID (SUID): Ein Programm wird mit den Rechten des Besitzers ausgeführt.
- Set-GID (SGID): Bei Programmen wird das Programm mit den Rechten der Gruppen des Besitzers ausgeführt. Bei Verzeichnissen wird die Arbeitsgruppe auf neu erstellte Dateien und Verzeichnisse vererbt.
- Sticky-Bit: Sorgt bei Verzeichnissen dafür, dass nur der Eigentümer einer Datei diese löschen oder umbenennen kann.
7. Symbole für Sonderrechte
Zeichen | Bedeutung | Beschreibung |
---|---|---|
s (S) | SUID | Führt das Programm mit den Rechten des Besitzers aus. Bei Verzeichnissen ist dieses Bit irrelevant. |
s (S) | SGID | Führt das Programm mit den Rechten der Gruppe aus. Bei Verzeichnissen wird die Gruppe der neu erstellten Objekte vererbt. |
t (T) | Sticky-Bit | Sorgt dafür, dass nur der Eigentümer einer Datei im Verzeichnis diese löschen oder umbenennen kann. |
8. Berechtigungen ändern
Die Berechtigungen können mit dem Befehl chmod
geändert werden:
Symbolische Darstellung:
1 |
chmod u+x dateiname # Fügt Ausführrechte für den Besitzer hinzu |
Oktale Darstellung:
1 |
chmod 755 dateiname # Setzt die Berechtigungen auf 755 |
9. Beispiel für den Zugriff mehrerer Benutzer auf ein Verzeichnis
Um mehreren Benutzern Lese-, Schreib- und Ausführrechte auf ein Verzeichnis zu gewähren, kann setfacl
oder das Setzen von SGID
verwendet werden. Hier wird das Verzeichnis /mnt/Gemeinsames_Verzeichnis
genutzt.
9.1 Verwendung von setfacl
Mit setfacl
können Berechtigungen für spezifische Benutzer auf ein Verzeichnis gesetzt werden. In diesem Fall erfolgt keine automatische Gruppenübernahme bei neuen Dateien und Verzeichnissen.
9.1.1 Setzen von Berechtigungen für mehrere Benutzer
Benutzern wie user1
, user2
und user3
wird Lese-, Schreib- und Ausführrechte gewährt:
1 2 3 |
setfacl -m u:user1:rwx /mnt/Gemeinsames_Verzeichnis setfacl -m u:user2:rwx /mnt/Gemeinsames_Verzeichnis setfacl -m u:user3:rwx /mnt/Gemeinsames_Verzeichnis |
9.1.2 Anzeigen der ACL (Access Control List)
Die aktuell gesetzten Berechtigungen werden mit dem Befehl getfacl
angezeigt:
1 |
getfacl /mnt/Gemeinsames_Verzeichnis |
Die Ausgabe könnte folgendermaßen aussehen:
1 2 3 4 5 6 7 8 9 |
# file: /mnt/Gemeinsames_Verzeichnis # owner: root # group: root user::rwx user:user1:rwx user:user2:rwx user:user3:rwx group::r-x other::r-x |
In diesem Beispiel haben user1
, user2
und user3
alle Berechtigungen rwx
(Lesen, Schreiben und Ausführen) auf das Verzeichnis.
Um mit setfacl
gesetzte Berechtigungen zu löschen, gibt es zwei gängige Methoden:
9.1.3 Löschen einer spezifischen Berechtigung für einen Benutzer
Um eine ACL für einen bestimmten Benutzer zu entfernen, wird der folgende Befehl verwendet:
1 |
setfacl -x u:user1 /mnt/Gemeinsames_Verzeichnis |
Dieser Befehl entfernt die ACL für user1
auf dem Verzeichnis /mnt/Gemeinsames_Verzeichnis
.
9.1.4 Löschen aller ACLs auf einem Verzeichnis
Um alle ACLs auf einem Verzeichnis zu entfernen, wird der Befehl -b
eingesetzt:
1 |
setfacl -b /mnt/Gemeinsames_Verzeichnis |
Dieser Befehl entfernt alle benutzerdefinierten ACLs für das angegebene Verzeichnis.
9.2 Verwendung des SGID-Bits
Das SGID-Bit sorgt dafür, dass alle neuen Dateien und Verzeichnisse innerhalb von /mnt/Gemeinsames_Verzeichnis die Gruppe des Verzeichnisses übernehmen. Dabei sollten alle berechtigten Benutzer der entsprechenden Gruppe des Verzeichnisses angehören.
Um der Gruppe für ein bestimmtes Verzeichnis Lese- sowie Schriebrechte für neu erstellte Dateien zuzuweisen, muss anstelle von umask setfacl
verwendet werden, da umask systemweit gilt und nicht für ein spezifisches Verzeichnis festgelegt werden kann.
Um das SGID-Bit zu setzen und der Gruppe Lese- und Schriebrechte zuzuweisen, kann der folgende Befehl verwendet werden:
1 2 |
sudo chmod 2775 /mnt/Gemeinsames_Verzeichnis setfacl -R -m d:u::rwx,d:g::rwx,d:o::r /mnt/Gemeinsames_Verzeichnis |
Die Zahl 2
vor den Berechtigungen sorgt dafür, dass neue Dateien die gleiche Gruppe wie das Verzeichnis erben. Dies stellt sicher, dass die Dateien mit den Berechtigungen 775
erstellt werden und die Gruppe vbox
zugewiesen wird.
by Speefak | wiki.debian.org | wiki.ubuntuusers.de