Frage Wie kann ich einen Unix-Benutzer umbenennen?


Ich habe einen Benutzer namens hedgehog und ich möchte, dass er benannt wird squirrel, aber ich möchte seine numerische Benutzerkennung nicht ändern.
Wie kann ich das erreichen?


63
2017-10-11 14:54


Ursprung


Wahrscheinlich, weil das Umbenennen eines Benutzers nicht gerade eine Aufgabe ist, mit der sich eine professionelle SA schwer tun würde. (Für die Frage nach unten.) - HopelessN00b
@Jeznet Ich habe das abgelehnt, weil das nicht nur eine unglaublich einfache Aufgabe ist, die gelöst werden könnte, indem du deinen Titel in Google eingibst, sondern auch deine eigene Frage beantwortet hast, sobald du sie gefragt hast. Es schien Zeitverschwendung. - boburob
@boburob "du hast deine Frage auch beantwortet, sobald du sie gefragt hast. Es war Zeitverschwendung", siehe: blog.stackoverflow.com/2011/07/... - Szymon Jeż
@boburob Hast du das Kästchen angezeigt, das sagt Answer your own question – share your knowledge, Q&A-style wenn du eine Frage stellst? Es ist aus einem bestimmten Grund da und wäre nicht da, wenn es nicht gebraucht würde. (Idealerweise bei besseren Fragen, aber unabhängig davon ist die Ablehnung einer Person, die ihre eigene Frage beantwortet, eine schlechte Form.) - HopelessN00b
Ja, ich habe auch schon meine eigene Frage beantwortet, aber für mich ist es eine Zeitverschwendung, eine Frage zu stellen und das Google-Ergebnis in derselben Minute einzufügen - boburob


Antworten:


Unter Linux ist die usermod Befehl ändert Benutzernamen. Es ändert die Systemkontodateien, um die Änderungen widerzuspiegeln, die in der Befehlszeile angegeben werden.

Um nur den Benutzernamen zu ändern:

usermod --login new_username old_username

So ändern Sie den Benutzernamen und den Namen des Home-Verzeichnisses:

usermod --login new_username --move-home --home /new/home/dir old_username

Sie können auch den Namen der Gruppe ändern, die dem Benutzer zugeordnet ist:

groupmod --new-name new_username old_username

98
2017-10-11 14:54



Sie können usermod verwenden, um das Ganze zu tun usermod -l new-user-name -m -d / neu / home / dir alt-user-name - Iain
@Iain Danke. Ich werde meine Antwort erweitern, um das zu reflektieren. BTW Deshalb habe ich diese "triviale" Frage gestellt - um eine Antwort zu bekommen, die besser ist als meine (und auch weil ich sie nicht schon bei SF gefunden habe). - Szymon Jeż
Beachten Sie auch, dass die Gruppe auch nicht geändert wird. Wenn Sie das umbenennen müssen old-user-name Gruppe auch, verwenden # groupmod -n new-user-name old-user-name. - alxs
Für Systeme mit autofs, sollten Sie auch aktualisieren /etc/auto.home. Ich bin gerade reingerannt. - Steven C. Howell
Eventuell muss visudo erneut ausgeführt werden, um den neuen Benutzernamen in die sudoers-Liste aufzunehmen - Nagev


HINWEIS: Versuchen Sie das nicht, wenn Ihr Verzeichnis verschlüsselt ist! Wenn dies der Fall ist, sollten Sie zuerst prüfen: https://askubuntu.com/questions/107410/can-you-unencrypt-remove-encryption-from-a-user-home-folder

Der direkte Weg dies zu tun ist:

  1. Erstelle ein neues temporäres Konto mit Sudorechten:

    sudo adduser temp
    sudo adduser temp sudo
    
  2. Melden Sie sich von Ihrem aktuellen Konto ab und melden Sie sich mit dem temporären Konto an.

  3. Benennen Sie Ihren Benutzernamen und Ihr Verzeichnis um:

    sudo usermod -l new-username -m -d /home/new-username old-username
    
  4. Benennen Sie die Standardgruppe Ihres Nutzernamens um:

    sudo groupmod -n new-username old-username
    
  5. Melden Sie sich vom temporären Konto ab und melden Sie sich mit dem neuen Benutzernamen in Ihrem Konto an.

  6. Temporäres Konto entfernen:

    sudo userdel -r temp
    

Ansonsten erstellen Sie einfach (1) einen neuen Benutzer und (2) rsync der alte user home folder zum neuen und dann (3) chown es.


7
2017-12-18 16:49





Im Allgemeinen können Sie einen Benutzer umbenennen, indem Sie seinen Benutzernamen in der ändern /etc/passwd (und /etc/shadowggf. Dateien). Auf den meisten Unix-Systemen ist der vipw Befehl wird verwendet, um diese Dateien zu bearbeiten (und auf vielen Systemen enthält einige Garantien, um sicherzustellen, dass Sie Dinge nicht zu sehr vermasseln).
Siehe die Manpages für passwd(5), shadow(5), und vipw(8) für mehr Informationen.

Beachten Sie, dass die obige Methode andere Dinge nicht umbenennt, die den ursprünglichen Benutzernamen tragen können (Hauptverzeichnisse sind das Hauptbeispiel, persönliche Benutzergruppen (auf Systemen, die sie verwenden) sind andere). Sie können diese auch aus Gründen der Konsistenz bereinigen, indem Sie die entsprechenden Felder in der passwd-Datei ändern und die Verzeichnisse umbenennen.


Mehrere Betriebssysteme bieten eine systemspezifische Möglichkeit, Benutzer umzubenennen. Zum Beispiel enthalten viele Linux-Systeme die usermod(8) Befehl, und auf AIX können Sie Kontonamen mit ändern SMIT (oder smitty in einem Terminal).
Diese Befehle behandeln häufig die Bereinigungselemente wie das Umbenennen von Home-Verzeichnissen, wenn Sie sie dazu auffordern.


4