usermod ist der Befehl, mit dem Sie ein bereits bestehendes Benutzerkonto unter Linux ändern. Damit fügen Sie einen Benutzer zu Gruppen hinzu, benennen ihn um, verschieben sein Home-Verzeichnis, ändern die Shell und sperren vorübergehend die Anmeldung.
Alle Befehle unten führen Sie als root oder über sudo aus. Wir haben sie unter Debian 12 getestet, unter Ubuntu und anderen Distributionen funktionieren sie genauso.
Benutzer anlegen statt ändern
Wenn es den Benutzer noch nicht gibt, legen Sie ihn zuerst an.
Unter Ubuntu und Debian geht das mit adduser name.
Unter AlmaLinux und CentOS mit useradd -m name.
Ein Beispiel mit einem eigenen Benutzer für die Anmeldung per SSH finden Sie im Artikel zur Anmeldung mit SSH-Schlüsseln.
Aktuelle Einstellungen eines Benutzers anzeigen
Vor jeder Änderung lohnt es sich zu prüfen, was beim Benutzer gerade eingestellt ist.
# UID, primäre Gruppe und alle zusätzlichen Gruppen des Benutzers
id username
# Zeile des Benutzers aus /etc/passwd mit Home-Verzeichnis und Shell
getent passwd usernameBenutzer zu einer Gruppe hinzufügen
Das ist die häufigste Aufgabe, zum Beispiel um Administratorrechte über sudo oder Zugriff auf Docker zu geben.
# Benutzer zur Gruppe sudo hinzufügen (unter Ubuntu und Debian)
usermod -aG sudo username
# Unter AlmaLinux, CentOS und Oracle Linux gehören Administratoren zur Gruppe wheel
usermod -aG wheel username
# Mehrere Gruppen auf einmal mit Komma und ohne Leerzeichen aufzählen
usermod -aG docker,www-data usernameVergessen Sie den Parameter -a nicht
Der Parameter -G ohne -a ersetzt die gesamte Liste der zusätzlichen Gruppen. Der Benutzer ist dann nur noch in den angegebenen Gruppen und verliert alle anderen, zum Beispiel den Zugriff auf sudo. Zum Hinzufügen schreiben Sie deshalb immer -aG.
Neue Gruppen gelten ab der nächsten Anmeldung des Benutzers. Wenn er gerade per SSH verbunden ist, sollte er sich neu verbinden und das Ergebnis dann mit dem Befehl id prüfen.
Benutzer aus einer Gruppe entfernen
# Benutzer aus der Gruppe docker entfernen
gpasswd -d username dockerDasselbe erreichen Sie mit dem Befehl usermod -rG docker username, die Variante mit gpasswd funktioniert aber in allen Distributionen.
Primäre Gruppe ändern
Jeder Benutzer hat genau eine primäre Gruppe. Diese Gruppe erhalten alle neuen Dateien, die er anlegt.
# developers zur primären Gruppe des Benutzers machen. Die Gruppe muss bereits existieren
usermod -g developers usernameBenutzer umbenennen
Der Parameter -l ändert nur den Login. Home-Verzeichnis und persönliche Gruppe behalten dabei ihre alten Namen, deshalb benennt man sie meist zusammen mit dem Login um.
# Login olduser in newuser ändern
usermod -l newuser olduser
# Home-Verzeichnis samt Inhalt unter den neuen Namen verschieben
usermod -d /home/newuser -m newuser
# Persönliche Gruppe des Benutzers umbenennen
groupmod -n newuser olduserDer Benutzer darf nicht angemeldet sein
Einen Benutzer, der laufende Prozesse hat, können Sie nicht umbenennen. Bitten Sie ihn, sich abzumelden, oder beenden Sie seine Sitzungen und wiederholen Sie dann den Befehl.
Home-Verzeichnis verschieben
# Neues Home-Verzeichnis festlegen und alle Dateien dorthin verschieben
usermod -d /data/home/username -m usernameOhne den Parameter -m ändert sich nur der Pfad in den Einstellungen, die Dateien bleiben am alten Ort.
Shell ändern
# Liste der im System installierten Shells
cat /etc/shells
# bash zur Shell des Benutzers machen
usermod -s /bin/bash username
# Anmeldung an der Konsole verbieten, zum Beispiel für einen Dienstbenutzer
usermod -s /usr/sbin/nologin usernameBenutzer sperren und entsperren
# Anmeldung mit Passwort sperren
usermod -L username
# Sperre aufheben
usermod -U username
# Konto vollständig deaktivieren, indem wir ein Ablaufdatum in der Vergangenheit setzen
usermod -e 1 username
# Ablaufdatum entfernen
usermod -e "" usernameDie Passwortsperre verhindert nicht die Anmeldung per Schlüssel
usermod -L verbietet nur die Anmeldung mit Passwort. Wenn für den Benutzer ein SSH-Schlüssel eingerichtet ist, kann er sich weiterhin anmelden. Um den Zugriff vollständig zu sperren, verwenden Sie usermod -e 1 oder löschen Sie seine Schlüssel aus ~/.ssh/authorized_keys.
UID ändern
# Dem Benutzer die UID 1050 zuweisen. Die Nummer darf nicht vergeben sein
usermod -u 1050 usernameusermod ändert den Eigentümer der Dateien im Home-Verzeichnis des Benutzers selbst. Dateien an anderen Orten behalten die alte UID, so finden und korrigieren Sie sie.
# Statt 1001 geben Sie die alte UID des Benutzers an
find / -xdev -user 1001 -exec chown -h username {} \;Spickzettel
| Befehl | Was er bewirkt |
|---|---|
usermod -aG gruppe name | Zu einer zusätzlichen Gruppe hinzufügen |
gpasswd -d name gruppe | Aus einer Gruppe entfernen |
usermod -g gruppe name | Primäre Gruppe ändern |
usermod -l neu alt | Benutzer umbenennen |
usermod -d pfad -m name | Home-Verzeichnis verschieben |
usermod -s shell name | Shell ändern |
usermod -L name / -U | Passwort sperren oder entsperren |
usermod -e 1 name | Konto vollständig deaktivieren |
usermod -u UID name | UID ändern |
Häufige Fragen
Ich habe den Benutzer zu einer Gruppe hinzugefügt, aber die Rechte sind nicht da
Gruppen werden bei der Anmeldung übernommen. Der Benutzer muss sich abmelden und neu verbinden, danach zeigt der Befehl id die neue Gruppe.
Die Meldung sagt, dass die Gruppe nicht existiert
Legen Sie die Gruppe zuerst mit dem Befehl groupadd gruppenname an und führen Sie dann usermod erneut aus. Eine Liste aller Gruppen zeigt der Befehl getent group.
Der Benutzer lässt sich nicht umbenennen
Höchstwahrscheinlich ist der Benutzer gerade angemeldet oder hat laufende Prozesse. Sehen Sie sich diese mit ps -u username an, beenden Sie die Sitzungen und wiederholen Sie usermod -l.
Versehentlich usermod -G ohne -a ausgeführt
Der Benutzer ist nur noch in den angegebenen Gruppen. Fügen Sie die nötigen Gruppen mit demselben Befehl und dem Parameter -aG wieder hinzu, zum Beispiel usermod -aG sudo username. Wenn das Ihr einziger Administrator war und der Zugriff auf sudo weg ist, melden Sie sich über die Schaltfläche Console im Kundenbereich als root am Server an.
Unsere Ressourcen
Telegram-Kanal: https://t.me/f3cloud_news
Hosting-Website: https://f3cloud.com