Linux Benutzer und Rechte verwalten
Die Rechteverwaltung ist fundamental für die Linux-Sicherheit. Diese Anleitung erklärt Benutzer, Gruppen, Dateiberechtigungen und sudo-Konfiguration.
Benutzer verwalten
Benutzer anlegen
# Mit Home-Verzeichnis (empfohlen)
sudo adduser username
# Oder minimalistisch
sudo useradd username
sudo passwd username
Benutzer löschen
# Benutzer löschen (Home bleibt)
sudo deluser username
# Benutzer mit Home-Verzeichnis löschen
sudo deluser --remove-home username
Benutzer modifizieren
# Passwort ändern
sudo passwd username
# Shell ändern
sudo chsh -s /bin/zsh username
# Home-Verzeichnis ändern
sudo usermod -d /new/home username
# Benutzername ändern
sudo usermod -l newname oldname
Gruppen verwalten
# Gruppe erstellen
sudo groupadd gruppenname
# Benutzer zur Gruppe hinzufügen
sudo usermod -aG gruppenname username
# Benutzer aus Gruppe entfernen
sudo gpasswd -d username gruppenname
# Gruppe löschen
sudo groupdel gruppenname
# Gruppen eines Benutzers anzeigen
groups username
id username
Wichtige Systemgruppen
| Gruppe |
Berechtigung |
sudo |
Root-Rechte via sudo |
docker |
Docker ohne sudo |
www-data |
Webserver-Prozesse |
adm |
Log-Dateien lesen |
Dateiberechtigungen verstehen
ls -la
drwxr-xr-x 2 user group 4096 Jan 10 12:00 ordner
-rw-r--r-- 1 user group 123 Jan 10 12:00 datei.txt
# d = Directory, - = Datei, l = Link
# rwx = read, write, execute
# user | group | others
Numerische Darstellung
| Recht |
Buchstabe |
Wert |
| Lesen |
r |
4 |
| Schreiben |
w |
2 |
| Ausführen |
x |
1 |
# Beispiele:
# 755 = rwxr-xr-x (User: alles, Group/Others: lesen+ausführen)
# 644 = rw-r--r-- (User: lesen+schreiben, Rest: nur lesen)
# 700 = rwx------ (Nur User hat Zugriff)
chmod - Rechte ändern
# Numerisch
chmod 755 script.sh
chmod 644 datei.txt
# Symbolisch
chmod u+x script.sh # User: execute hinzufügen
chmod g-w datei.txt # Group: write entfernen
chmod o=r datei.txt # Others: nur read
chmod a+r datei.txt # All: read hinzufügen
# Rekursiv
chmod -R 755 /var/www/html
chown - Besitzer ändern
# Besitzer ändern
sudo chown username datei.txt
# Besitzer und Gruppe ändern
sudo chown username:groupname datei.txt
# Nur Gruppe ändern
sudo chown :groupname datei.txt
# Rekursiv
sudo chown -R www-data:www-data /var/www/html
Typische Webserver-Rechte
# Webverzeichnis
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
# Schreibbare Ordner (Uploads, Cache)
sudo chmod -R 775 /var/www/html/wp-content/uploads
# Konfigurationsdateien
sudo chmod 640 /var/www/html/wp-config.php
sudo konfigurieren
# sudoers bearbeiten (IMMER mit visudo!)
sudo visudo
# Benutzer darf alles
username ALL=(ALL:ALL) ALL
# Benutzer darf ohne Passwort
username ALL=(ALL) NOPASSWD: ALL
# Benutzer darf nur bestimmte Befehle
username ALL=(ALL) /usr/bin/systemctl restart nginx
# Gruppe darf sudo nutzen
%gruppenname ALL=(ALL:ALL) ALL
Spezielle Berechtigungen
SUID, SGID, Sticky Bit
# SUID (4): Ausführung als Dateibesitzer
chmod u+s programm
chmod 4755 programm
# SGID (2): Ausführung als Gruppenbesitzer
chmod g+s ordner
chmod 2755 ordner
# Sticky Bit (1): Nur Besitzer kann löschen
chmod +t /tmp
chmod 1777 /tmp
ACLs (Access Control Lists)
# ACL-Unterstützung prüfen
sudo apt install acl
# ACL setzen
setfacl -m u:username:rwx datei.txt
setfacl -m g:groupname:rx datei.txt
# ACL anzeigen
getfacl datei.txt
# ACL entfernen
setfacl -x u:username datei.txt
# Alle ACLs entfernen
setfacl -b datei.txt
Wichtige Dateien
| Datei |
Inhalt |
/etc/passwd |
Benutzerliste |
/etc/shadow |
Passwort-Hashes |
/etc/group |
Gruppenliste |
/etc/sudoers |
sudo-Konfiguration |
Weitere Hilfe