Zum Hauptinhalt springen
Zurück zur Kategorie

Linux Benutzer- und Rechteverwaltung: sudo und Gruppen

Linux-Benutzerverwaltung mit useradd/usermod/userdel, Gruppenverwaltung, sudo-Konfiguration, SSH-schlüsselbasierte Authentifizierung und das Prinzip der minimalen Rechte.

Lesezeit: 13 min Serververwaltung
linuxbenutzerverwaltungsudogruppensshsicherheituseraddberechtigungen

Inhaltsverzeichnis

Linux Benutzer- und Rechteverwaltung: sudo und Gruppen

Benutzer- und Rechteverwaltung in Linux ist ein Grundpfeiler der Serversicherheit. Richtig konfigurierte Benutzerkonten und Berechtigungen verhindern unbefugten Zugriff und begrenzen die Auswirkungen von Sicherheitsverletzungen. Diese Anleitung behandelt Linux-Benutzerverwaltung, Gruppenstruktur, sudo-Konfiguration und SSH-schlüsselbasierte Authentifizierung.

Benutzerverwaltung

Benutzer erstellen

hljs bash
# Einfachen Benutzer erstellen
sudo useradd benutzername

# Benutzer mit Home-Verzeichnis erstellen
sudo useradd -m benutzername

# Mit Home-Verzeichnis, Shell und Kommentar
sudo useradd -m -s /bin/bash -c "Vor- und Nachname" benutzername

# Mit bestimmter UID
sudo useradd -m -u 1500 benutzername

# Mit primärer Gruppe
sudo useradd -m -g www-data benutzername

# Passwort setzen
sudo passwd benutzername

# Benutzerinformationen anzeigen
id benutzername
getent passwd benutzername

Benutzer bearbeiten

hljs bash
# Benutzernamen ändern
sudo usermod -l neuer_name alter_name

# Home-Verzeichnis ändern
sudo usermod -d /neues/home -m benutzername

# Shell ändern
sudo usermod -s /bin/bash benutzername

# Konto sperren
sudo usermod -L benutzername

# Konto entsperren
sudo usermod -U benutzername

# Ablaufdatum setzen
sudo usermod -e 2025-12-31 benutzername

# Passwortänderung beim nächsten Login erzwingen
sudo chage -d 0 benutzername

Benutzer löschen

hljs bash
# Benutzer löschen (Home-Verzeichnis bleibt)
sudo userdel benutzername

# Benutzer und Home-Verzeichnis löschen
sudo userdel -r benutzername

# Dateien des Benutzers finden
find / -user benutzername 2>/dev/null

Gruppenverwaltung

hljs bash
# Gruppe erstellen
sudo groupadd entwickler

# Benutzer zur Gruppe hinzufügen
sudo usermod -aG entwickler benutzername

# Zu mehreren Gruppen hinzufügen
sudo usermod -aG gruppe1,gruppe2,gruppe3 benutzername

# Gruppen des Benutzers anzeigen
groups benutzername
id benutzername

# Benutzer in einer Gruppe auflisten
getent group entwickler

# Benutzer aus Gruppe entfernen
sudo gpasswd -d benutzername entwickler

# Gruppe löschen
sudo groupdel entwickler

# Gruppe umbenennen
sudo groupmod -n neuer_name alter_name

sudo-Konfiguration

sudo-Zugriff gewähren

hljs bash
# Benutzer zur sudo-Gruppe hinzufügen (Debian/Ubuntu)
sudo usermod -aG sudo benutzername

# Benutzer zur wheel-Gruppe hinzufügen (RHEL/CentOS)
sudo usermod -aG wheel benutzername

# Änderung testen
su - benutzername
sudo whoami  # sollte root ausgeben

sudoers-Datei konfigurieren

hljs bash
# sudoers-Datei sicher bearbeiten
sudo visudo
# /etc/sudoers Inhalt

# Vollständiger sudo-Zugriff für Benutzer
benutzername ALL=(ALL:ALL) ALL

# Passwortloser sudo (mit Vorsicht verwenden)
benutzername ALL=(ALL) NOPASSWD: ALL

# sudo nur für bestimmte Befehle
benutzername ALL=(ALL) /usr/bin/systemctl, /usr/bin/apt

# sudo-Zugriff für eine Gruppe
%entwickler ALL=(ALL:ALL) ALL

# Passwortlos für bestimmten Befehl
benutzername ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
hljs bash
# Separate Datei erstellen (empfohlene Methode)
sudo nano /etc/sudoers.d/benutzername

# Dateiinhalt
benutzername ALL=(ALL:ALL) ALL

# Dateiberechtigungen setzen
sudo chmod 440 /etc/sudoers.d/benutzername

Dateiberechtigungen

hljs bash
# Berechtigungen anzeigen
ls -la /verzeichnis/

# Berechtigungen ändern (numerisch)
chmod 755 skript.sh    # rwxr-xr-x
chmod 644 datei.txt    # rw-r--r--
chmod 600 geheim.key   # rw-------

# Berechtigungen ändern (symbolisch)
chmod u+x skript.sh    # Ausführen für Eigentümer hinzufügen
chmod g-w datei.txt    # Schreiben von Gruppe entfernen
chmod o-r geheim.txt   # Lesen von anderen entfernen

# Eigentümerschaft ändern
chown benutzername datei.txt
chown benutzername:gruppe datei.txt

# Verzeichnis und Inhalt rekursiv ändern
chown -R benutzername:gruppe /verzeichnis/

SSH-schlüsselbasierte Authentifizierung

SSH-Schlüsselpaar generieren

hljs bash
# Schlüssel auf lokalem Rechner generieren
ssh-keygen -t ed25519 -C "email@example.com"

# RSA-Schlüssel (für ältere Systeme)
ssh-keygen -t rsa -b 4096 -C "email@example.com"

# Schlüssel werden in ~/.ssh/ erstellt:
# ~/.ssh/id_ed25519 (privater Schlüssel)
# ~/.ssh/id_ed25519.pub (öffentlicher Schlüssel)

Öffentlichen Schlüssel auf Server kopieren

hljs bash
# Mit ssh-copy-id (einfachste Methode)
ssh-copy-id benutzer@server_ip

# Manuelle Kopie
cat ~/.ssh/id_ed25519.pub | ssh benutzer@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

# Manuelle Einrichtung auf Server
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys  # öffentlichen Schlüssel einfügen
chmod 600 ~/.ssh/authorized_keys

SSH-Sicherheitskonfiguration

hljs bash
sudo nano /etc/ssh/sshd_config
# Passwort-Authentifizierung deaktivieren (nach Schlüssel-Einrichtung)
PasswordAuthentication no

# Root-Login deaktivieren
PermitRootLogin no

# Leere Passwörter nicht erlauben
PermitEmptyPasswords no

# Maximale Login-Versuche
MaxAuthTries 3

# Bestimmte Benutzer erlauben
AllowUsers benutzer1 benutzer2

# Bestimmte Gruppe erlauben
AllowGroups ssh-users
hljs bash
# SSH-Dienst neu starten
sudo systemctl restart sshd

# Konfiguration testen
sudo sshd -t

Prinzip der minimalen Rechte

Das Prinzip der minimalen Rechte besagt, dass jeder Benutzer und Prozess nur die Mindestberechtigungen haben sollte, die zur Erfüllung seiner Aufgabe erforderlich sind.

hljs bash
# Dedizierten Benutzer für Anwendung erstellen (ohne Shell)
sudo useradd -r -s /usr/sbin/nologin -d /var/lib/myapp myapp_user

# Home-Verzeichnis für Dienstbenutzer erstellen
sudo mkdir -p /var/lib/myapp
sudo chown myapp_user:myapp_user /var/lib/myapp
sudo chmod 750 /var/lib/myapp

Vermeiden Sie die direkte Verwendung des Root-Kontos. Erstellen Sie für jeden Administrator ein separates Konto und autorisieren Sie über sudo. So sind alle Aktionen protokolliert und nachverfolgbar.

Benutzeraktivität überwachen

hljs bash
# Letzte Anmeldungen anzeigen
last
lastlog

# Fehlgeschlagene Anmeldeversuche anzeigen
lastb

# Aktive Benutzer anzeigen
who
w

# sudo-Nutzung überwachen
sudo grep sudo /var/log/auth.log

Fazit

Linux-Benutzer- und Rechteverwaltung bildet die Grundlage der Serversicherheit. Gewähren Sie jedem Benutzer nur die benötigten Berechtigungen, verwenden Sie SSH-schlüsselbasierte Authentifizierung und schränken Sie den Root-Zugriff ein. Diese Praktiken schützen Ihre REXE-Server vor unbefugtem Zugriff.