Linux: Berechtigungen

24. Feber 2020

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:

  1. Benutzernamen
  2. Platzhalter für das Passwort
  3. ID des Benutzers
  4. ID der Gruppe(n)
  5. Kommentar über den Benutzer
  6. Home-Verzeichnis des Benutzers
  7. Shell für den Benutzer

Die Gruppen können aus der Datei /etc/group gelesen werden.

  1. Gruppenname
  2. Platzhalter für das Passwort
  3. ID der Gruppe
  4. 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