Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Betriebssysteme Linux

Wie man den Benutzer in Linux ändert: Der vollständige Leitfaden

Linux ist ein Multi-User-Betriebssystem von Natur aus, und die Verwaltung von Benutzeridentitäten ist eine der grundlegendsten Fähigkeiten, die jeder Systemadministrator beherrschen muss. Egal ob Sie eine VPS Hosting Umgebung verwalten, einen Webserver konfigurieren oder Dateiberechtigungsprobleme nach einer Bereitstellung beheben, das Verständnis, wie man Benutzer in Linux wechselt, ist unverzichtbar.

Der Ausdruck „Benutzer wechseln” in Linux umfasst tatsächlich mehrere unterschiedliche Operationen, jede mit ihren eigenen Tools, Risiken und Best Practices:

  • Zu einem anderen Konto in der Shell wechseln (z. B. von john zu root) für eine interaktive Sitzung
  • Einen einzelnen Befehl als ein anderer Benutzer ausführen, ohne vollständig die Sitzung zu wechseln
  • Ändern, welcher Benutzer einen Service oder Prozess ausführt — kritisch für die Sicherheitshärtung
  • Ändern von Datei- und Verzeichniseigentum — unverzichtbar nach Migrationen, Wiederherstellungen oder Bereitstellungen
  • Ändern von Benutzerkontoattributen — Umbenennung von Benutzern, Änderung von UIDs oder Anpassung von Gruppenmitgliedschaften

Dieser Leitfaden behandelt alle diese Szenarien ausführlich und erklärt, wann jeder Ansatz zu verwenden ist, wie man es sicher macht und welche Fehler zu vermeiden sind — damit Sie Linux-Benutzer sicher verwalten können, ohne Berechtigungen, Services oder Zugriff zu beschädigen.

Zu einem anderen Benutzer wechseln (Interaktive Shell)

Wenn Sie eine vollständige interaktive Terminalsitzung als ein anderer Benutzer benötigen — für Systemadministration, zum Testen des Anwendungsverhaltens unter einem anderen Konto oder zum Zugriff auf ein Dienstkonto — bietet Linux zwei primäre Tools: su und sudo.

Verwendung von su (Benutzer wechseln)

Der Befehl su ersetzt Ihre aktuelle Benutzeridentität durch eine andere:

su - username

Das Flag - (auch geschrieben als -l oder --login) ist wichtig: Es lädt die vollständige Login-Umgebung des Zielbenutzers, einschließlich seines Home-Verzeichnisses, PATH, Shell-Profils und Umgebungsvariablen. Ohne das Flag - erben Sie viel von Ihrer aktuellen Umgebung, was zu subtilen und verwirrenden Verhaltensweisen führen kann — besonders beim Ausführen von Skripten oder Diensten.

Um direkt zu root zu wechseln:

su -

> Sicherheitshinweis: Bei vielen modernen Linux-Distributionen ist das Root-Kontokennwort standardmäßig deaktiviert (besonders bei Ubuntu-basierten Systemen). In diesen Fällen schlägt su zu root fehl, und sudo ist der richtige Ansatz.

Verwendung von sudo -i (Bevorzugt für Root/Admin-Shells)

sudo -i

Dies gibt Ihnen eine Root-Login-Shell, die su - entspricht, authentifiziert sich aber mit Ihren eigenen sudo-Privilegien, anstatt das Root-Kennwort zu benötigen. Dies ist der empfohlene Ansatz bei den meisten modernen Distributionen, da:

  • Es vermeidet, das Root-Kennwort freigeben oder kennen zu müssen
  • Alle Aktionen über die sudo-Audit-Spur protokolliert werden
  • Es Ihre sudoers-Konfiguration und Einschränkungen respektiert

Zu einem anderen Benutzer mit einer Login-Shell über sudo wechseln

sudo -iu username

Dies kombiniert -i (Login-Shell) und -u (Zielbenutzer) und gibt Ihnen eine saubere Login-Umgebung als der angegebene Benutzer — ohne das Kennwort dieses Benutzers zu benötigen.

Einen einzelnen Befehl als anderer Benutzer ausführen

Oft benötigen Sie keine vollständige interaktive Sitzung — Sie müssen nur einen Befehl mit einer anderen Identität ausführen. Dies ist das häufigste und sicherste Muster für Privilege Escalation.

Verwendung von sudo -u

sudo -u username whoami
sudo -u postgres psql

Das zweite Beispiel ist in der Datenbankadministration äußerst verbreitet — Wechsel zum postgres Systembenutzer, um auf PostgreSQL ohne Passwortauthentifizierung zuzugreifen.

Einen Befehl mit einer sauberen Login-Umgebung ausführen

sudo -iu username command_here

Dies stellt sicher, dass der Befehl mit der vollständigen Umgebung des Zielbenutzers ausgeführt wird, nicht mit den Variablen Ihrer aktuellen Sitzung.

Einen Befehl als Root ausführen

sudo systemctl restart nginx

Dies ist das Standardmuster für administrative Aufgaben: Führen Sie einen einzelnen privilegierten Befehl aus, ohne eine Root-Shell zu öffnen.

Benutzer ändern, unter dem ein Dienst ausgeführt wird (systemd)

Auf praktisch allen modernen Linux-Distributionen verwaltet systemd Dienste. Aus Sicherheitsgründen sollte jeder Dienst unter einem dedizierten, nicht privilegierten Benutzerkonto ausgeführt werden, anstatt als root. Das Ausführen von Diensten als root ist ein erhebliches Sicherheitsrisiko — wenn der Dienst kompromittiert wird, erhält der Angreifer root-Zugriff auf das gesamte System.

Dies ist besonders wichtig auf Dedicated Servers und produktiven VPS-Umgebungen, in denen mehrere Dienste gleichzeitig ausgeführt werden können.

Aktuelle Dienstkonfiguration überprüfen

systemctl cat myservice.service

Suchen Sie nach den Direktiven User= und Group= im Abschnitt [Service]:

[Service]
User=www-data
Group=www-data

Dienst-Benutzer überschreiben (sichere Methode)

Anstatt die ursprüngliche Unit-Datei zu bearbeiten (die bei Paket-Upgrades überschrieben werden kann), verwenden Sie systemctl edit, um eine Drop-in-Überschreibung zu erstellen:

sudo systemctl edit myservice.service

Dies öffnet einen Editor, in dem Sie Folgendes hinzufügen:

[Service]
User=myuser
Group=mygroup

Speichern Sie die Datei und wenden Sie dann die Änderungen an:

sudo systemctl daemon-reload
sudo systemctl restart myservice.service

Überprüfen Sie, ob der Dienst unter dem richtigen Benutzer ausgeführt wird

systemctl status myservice.service
ps -eo user,pid,cmd | grep myservice

Benutzer eines beliebigen laufenden Prozesses überprüfen

ps -eo user,pid,cmd | grep nginx
ps -p <PID> -o user,group,cmd

> Wichtig: Linux erlaubt es nicht, den Benutzer eines bereits laufenden Prozesses direkt zu ändern. Sie müssen den Prozess neu starten (oder den Service Manager so konfigurieren, dass er ihn unter dem richtigen Benutzer startet), damit die Änderung wirksam wird.

Dateieigentümer mit chown ändern

Dateieigentümerschaft ist ein Kernbestandteil von Linuxs Berechtigungsmodell. Nach Migrationen, Bereitstellungen, Sicherungen oder Wiederherstellungen kann die Eigentümerschaft dem falschen Benutzer zugewiesen werden – was zu Berechtigungsverweigerungsfehlern, fehlerhaften Webanwendungen oder unzugänglichen Daten führt. Der chown Befehl ist dein primäres Werkzeug zur Behebung dieses Problems.

Dies ist eine häufige Aufgabe beim Einrichten von Shared Web Hosting Umgebungen oder beim Bereitstellen von Webanwendungen auf einem VPS.

Eigentümer einer Datei ändern

sudo chown username file.txt

Eigentümer und Gruppe ändern

sudo chown username:groupname file.txt

Rekursive Eigentümeränderung (Mit Vorsicht verwenden)

sudo chown -R username:groupname /var/www/site

Das -R Flag wendet die Änderung rekursiv auf alle Dateien und Unterverzeichnisse an. Verwende dies mit Vorsicht – wenn du es auf den falschen Pfad anwendest (z. B. / oder /etc), kann dein gesamtes System beschädigt werden.

sudo chown -h username:groupname symlink

Ohne -h folgt chown symbolischen Links und ändert die Eigentümerschaft der Zieldatei, nicht des symbolischen Links selbst. Verwende -h, wenn du speziell die Eigentümerschaft des symbolischen Links ändern möchtest.

Eigentümerschaft vor Änderungen in der Vorschau anzeigen

Zeige für große Verzeichnisbäume immer eine Vorschau an, bevor du eine rekursive chown anwendest:

find /path -maxdepth 2 -printf '%u:%g %pn' | head

Dies zeigt den aktuellen Eigentümer und die Gruppe für die obersten zwei Ebenen des Verzeichnisbaums an, sodass du den Umfang der Änderung bestätigen kannst, bevor du sie durchführst.

Bestätigen Sie Ihre aktuelle Identität

Überprüfen Sie vor Änderungen immer, wer Sie sind und in welchem Kontext Sie arbeiten. Dies verhindert versehentliche Änderungen unter dem falschen Konto.

Überprüfen Sie Ihren aktuellen Benutzer

whoami

Vollständige Identitätsinformationen abrufen (Benutzer, Gruppen, UIDs)

id

Beispielausgabe:

uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo),1001(docker)

Sehen Sie, wer im System angemeldet ist

who
w

Überprüfen Sie den ursprünglichen Benutzer bei Verwendung von sudo

Wenn Sie mit sudo eskalieren, sind zwei Umgebungsvariablen relevant:

echo $USER        # The current effective user (root)
echo $SUDO_USER   # The original user who invoked sudo (e.g., alice)

Diese Unterscheidung ist in Skripten wichtig — $SUDO_USER zeigt Ihnen, wer den Befehl tatsächlich ausgeführt hat.

Benutzerkontoattribute ändern

Manchmal bedeutet „Benutzer ändern” das Ändern des Kontos selbst: Umbenennung, Änderung der UID oder Anpassung der Gruppenmitgliedschaften. Dies sind permanente, systemweite Änderungen, die sich auf Anmeldungen, Dateiberechtigungen und Dienstzugriff auswirken können.

> Best Practice: Stellen Sie vor Kontoänderungen sicher, dass der Benutzer abgemeldet ist und keine Prozesse unter diesem Konto ausgeführt werden.

Benutzer umbenennen (Benutzernamen ändern)

sudo usermod -l newname oldname

Dies ändert den Anmeldenamen, benennt aber das Home-Verzeichnis nicht automatisch um. Um das Home-Verzeichnis auch zu verschieben und umzubenennen:

sudo usermod -d /home/newname -m newname

Wenn der Benutzer eine primäre Gruppe mit dem gleichen Namen wie sein alter Benutzername hat (was auf den meisten Distributionen Standard ist), aktualisieren Sie auch den Gruppennamen:

sudo groupmod -n newname oldname

UID eines Benutzers ändern

sudo usermod -u 2001 username

> Kritisch: Nach dem Ändern einer UID werden alle Dateien, die zuvor der alten UID gehörten, als Eigentum einer unbekannten numerischen ID angezeigt. Sie müssen dies sofort beheben:

sudo find / -user oldUID -exec chown -h username {} ;

Ersetzen Sie oldUID durch die vorherige numerische UID. Dieser Befehl durchsucht das gesamte Dateisystem nach Dateien mit der alten UID und weist sie dem neuen Benutzernamen zu.

Benutzer zu einer Gruppe hinzufügen

Der häufigste Anwendungsfall ist die Gewährung von sudo-Zugriff für einen Benutzer:

Debian/Ubuntu:

sudo usermod -aG sudo username

RHEL / AlmaLinux / Rocky Linux:

sudo usermod -aG wheel username

Das Flag -a ist kritisch — es fügt den Benutzer zur Gruppe hinzu, ohne ihn aus bestehenden Gruppen zu entfernen. Das Weglassen von -a ersetzt alle Gruppenmitgliedschaften durch nur die angegebene Gruppe.

Gruppenmitgliedschaft überprüfen

id username

Schnellreferenz-Spickzettel

Hier ist eine konsolidierte Referenz für alle in diesem Leitfaden behandelten Benutzer-Wechsel- und Verwaltungsvorgänge:

AufgabeBefehl
Zu anderem Benutzer wechseln (Login-Shell)su - username
Zu anderem Benutzer via sudo wechselnsudo -iu username
Root-Shell öffnensudo -i
Befehl als anderer Benutzer ausführensudo -u username command
Befehl als postgres ausführensudo -u postgres psql
Aktuellen Benutzer prüfenwhoami
Vollständige Identität und Gruppen prüfenid
Ursprünglichen sudo-Aufrufer prüfenecho $SUDO_USER
Dateieigentümer ändernsudo chown username file
Dateieigentümer und Gruppe ändernsudo chown username:group file
Rekursive Eigentumsänderungsudo chown -R username:group /path
Verzeichniseigentum in der Vorschau anzeigenfind /path -maxdepth 2 -printf '%u:%g %pn'
Service-Benutzer ändern (systemd)sudo systemctl edit myservice.service
systemd nach Änderungen neu ladensudo systemctl daemon-reload
Prozessbenutzer überprüfen`ps -eo user,pid,cmdgrep service`
Benutzer umbenennensudo usermod -l newname oldname
Home-Verzeichnis verschiebensudo usermod -d /home/newname -m newname
UID ändernsudo usermod -u 2001 username
Eigentum nach UID-Änderung reparierensudo find / -user oldUID -exec chown -h username {} ;
Benutzer zur sudo-Gruppe hinzufügensudo usermod -aG sudo username
Gruppenmitgliedschaft überprüfenid username

Zusammenfassung

Die Verwaltung von Benutzern in Linux ist keine einzelne Operation — es ist eine Familie von verwandten Aufgaben, jede mit ihren eigenen Tools und Auswirkungen:

  • Verwenden Sie sudo -iu username für interaktive Sitzungen als anderer Benutzer (bevorzugt gegenüber su auf modernen Systemen)
  • Verwenden Sie sudo -u username command zum Ausführen einzelner Befehle mit einer anderen Identität
  • Verwenden Sie systemctl edit um sicher zu ändern, welcher Benutzer einen systemd-Dienst ausführt
  • Verwenden Sie chown um Dateieigentümerschaft nach Bereitstellungen, Migrationen oder Berechtigungsproblemen zu beheben
  • Verwenden Sie usermod für permanente Kontoänderungen — Umbenennung, UID-Änderungen und Gruppenverwaltung

Das Verständnis dieser Unterscheidungen hilft Ihnen, häufige Fehler wie das Unterbrechen von Dienstberechtigungen, das Sperren von Dateien oder das versehentliche Gewähren übermäßiger Berechtigungen zu vermeiden.

Wenn Sie eine Linux-basierte Infrastruktur betreiben — ob es sich um einen Webserver, eine Datenbank oder einen benutzerdefinierten Anwendungsstapel handelt — macht eine ordnungsgemäß konfigurierte Hosting-Umgebung die Benutzerverwaltung erheblich einfacher. AlexHost bietet flexible VPS Control Panels und VPS mit cPanel Optionen, die Ihnen vollständigen Root-Zugriff zusammen mit intuitiven Verwaltungsschnittstellen geben, damit Sie alles in diesem Leitfaden mit Zuversicht anwenden können.