Linux: Berechtigungen
Linux ist ein Mehrbenutzersystem. Ein Benutzer kann ein „normaler“ Benutzer oder ein Systembenutzer sein, der z.B. für Dienste verwendet wird. Linux unterscheidet nicht dazwischen (außer in den IDs). Einzelne Benutzer sind wiederum Gruppen zugeordnet.
Die Informationen zu den Benutzern sind in /etc/passwd gespeichert. Die Ausgabe gibt folgende Informationen zurück:
- Benutzernamen
- Platzhalter für das Passwort
- ID des Benutzers
- ID der Gruppe(n)
- Kommentar über den Benutzer
- Home-Verzeichnis des Benutzers
- Shell für den Benutzer
Die Gruppen können aus der Datei /etc/group gelesen werden.
- Gruppenname
- Platzhalter für das Passwort
- ID der Gruppe
- Benutzer in dieser Gruppe, mit Komma getrennt
Die folgenden Beispiele sind für Alpine-Linux. In anderen Distributionen sind die Befehle ggf. etwas anders (z.B. anstatt adduser ist der Befehl oft useradd).
Benutzer erstellen
adduser $BENUTZERNAME -g root
Dieser Befehl erzeugt einen neuen Benutzer und teilt diesen der Gruppe root zu.
Passwort eines Benutzers ändern
passwd $BENUTZERNAME
Anschließend muss das neue Passwort zweimal erfasst werden.
Benutzer löschen
deluser $BENUTZERNAME
Gruppen erstellen
sudo groupadd $GRUPPENNAME
Benutzer Gruppen zuordnen
Mit dem folgenden Befehl werden die Gruppen des Benutzers überschrieben
usermod -G $GRP1,$GRP2,$GRP3 $BENUTZERNAME
Sollen stattdessen Gruppen hinzugefügt werden, muss die Option -a verwendet werden.
usermod -a -G $GRP1,$GRP2,$GRP3 $BENUTZERNAME
Um die Informationen des Benutzers inkl. dessen Gruppen anzuzeigen, wird der Befehl id verwendet.
id $BENUTZERNAME
Berechtigungen auf eine Datei bzw. eines Verzeichnisses ändern
Hierfür steht der Befehl „chmod“ zur Verfügung. Es gibt mehrere Möglichkeiten diesen zu verwenden. Einmal mit Zahlen
- 4 = lesen
- 2 = schreiben
- 1 = ausführen
und einmal mit Buchstaben
- r = lesen
- w = schreiben
- x = ausführen
Nachfolgend ein Beispiel, um einer Datei für den Besitzer (erste Zahl) Lese- und Schreibrechte zu geben, und der Gruppe (zweite Zahl) sowie allen anderen (dritte Zahl) Leserechte. Die gewünschte Berechtigung ist die Summe der Zahlen.
chmod 644 test.txt
Hier das selbe Beispiel mit Verwendung der Buchstaben:
chmod u+rw,g+r,a+r test.txt
chmod u+rw,ga+r test.txt
Soll dies nicht nur für die Datei, sondern rekursiv gemacht werden:
chmod -R 744 test/
Verzeichnisse benötigen die x-Berechtigung (ausführen), da ansonsten nicht in diese gewechselt werden kann und eine Permission denied Fehlermeldung kommt.
Besitzer einer Datei bzw. eines Verzeichnisses ändern
Hierfür gibt es den Befehl chown.
chown $BENUTZER:$GRUPPE $DATEI
chown -R $BENUTZER:$GRUPPE $VERZEICHNIS
chown $BENUTZER $Datei
chgrp $GRUPPE $DATEI
Berechtigungen auflisten
ls -l