Frage Wie ändere ich meinen Benutzernamen?


Vor einiger Zeit, als ich Ubuntu installiert habe, habe ich einen ziemlich dummen Benutzernamen für mein Konto gewählt, den ich nicht mehr benutzen möchte.

Wie ändere ich das (einschließlich des Namens meines Home-Verzeichnisses und des Namens im Terminal), ohne die Einstellungen für Anwendungen zu verlieren?
Wie behalte ich Berechtigungen und meine Schlüssel für verschiedene Authentifizierung (z. B. E-Mail, SSH, GPG und mehr)?
Welche Einstellungen könnten möglicherweise verloren gehen, wenn ich meinen Benutzernamen ändere?


262
2018-04-08 08:25


Ursprung




Antworten:


Unix-ähnliche Betriebssysteme entkoppeln den Benutzernamen von der Benutzeridentität, so dass Sie den Namen sicher ändern können, ohne die ID zu beeinflussen. Alle Berechtigungen, Dateien usw. sind an Ihre Identität (uid) gebunden, nicht an Ihren Benutzernamen.

Um jeden Aspekt der Benutzerdatenbank zu verwalten, verwenden Sie die usermod Werkzeug.

Um den Benutzernamen zu ändern (am besten ohne Anmeldung):

sudo usermod -l newUsername oldUsername

Dies ändert jedoch nicht den Home-Ordner.

Um den Heimatordner zu ändern, verwenden Sie

sudo usermod -d /home/newHomeDir -m newUsername

nachdem du den Benutzernamen geändert hast.

Zum Beispiel können Sie sich ausloggen, auf eine Konsole legen (Strg+Alt+F1), und sudo su - wahre Wurzel werden (im Gegensatz zu sudo -s, wobei $ HOME immernoch / home / deinname ist.) Vielleicht musst du auch noch einige laufende Prozesse von diesem Benutzer beenden. Um dies zu tun, geben Sie ein ps -u username, suchen Sie nach der passenden PID und löschen Sie sie kill PID-number.

Update: Wie erwähnt, können einige Dateien auf Ihr altes Home-Verzeichnis verweisen. Sie können einen Symlink für die Abwärtskompatibilität beibehalten, z ln -s /home/newname /home/oldname oder Sie können den Dateiinhalt mit ändern sed -i.bak 's/*oldname*/*newname*/g' *list of files* Es erstellt ein Backup für jede Datei mit der Erweiterung .bak.

Einige zusätzliche Informationen für nicht so erfahrene Benutzer wie mich:
Da ich nur ein Benutzerkonto (Administrator) habe, würde ich den Benutzernamen nicht ändern ("Sie sind bereits angemeldet" war die Antwort in TTY1 (Strg+Alt+F1). Um dies zu umgehen:

  1. Melden Sie sich mit Ihren alten Anmeldeinformationen an und fügen Sie einen neuen Benutzer hinzu, z. "temporär" in TTY1:

    sudo adduser temporary
    

    Setze das Passwort.

  2. Ermöglichen Sie dem temporären Benutzer, sudo auszuführen, indem Sie den Benutzer der sudo-Gruppe hinzufügen:

    sudo adduser temporary sudo
    
  3. Melden Sie sich mit dem Befehl ab exit.
  4. Zurück zu tty1: Melden Sie sich mit dem 'temporären' Benutzerkonto und dem Passwort an. Ändern Sie Ihren Benutzernamen und Ordner wie oben erwähnt. exit (bis Sie die Login-Aufforderung erhalten)
  5. Gehe zurück zu TTY7 (Strg+Alt+F7) um sich auf dem GUI / normalen Desktop-Bildschirm anzumelden und zu sehen, ob das funktioniert.
  6. Temporären Benutzer und Ordner löschen:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

257
2018-04-08 08:48



Dies gilt leider nicht für verschiedene Konfigurationsdateien unter $ HOME, versuchen Sie etwas wie grep -IRFl /home/username ~ und Sie werden sehen, wie viele Verweise auf Ihr Home-Verzeichnis dort gespeichert sind. - arrange
War eine einfache Lösung - musste nur den Benutzerkonten-Editor in Einheit verwenden, gefolgt von einem Neustart. - Steve Koch
Für diejenigen mit einem verschlüsselten Home-Ordner müssen Sie bearbeiten /home/.ecryptfs/oldusername/.ecryptfs/Private.mnt um auf Ihren neuen Benutzerordner zu zeigen, sonst können Sie sich nicht über Unity anmelden. - raphael
sudo usermod -d /home/edge -m edge Erträge: usermod: Directory /home/empedokles could not be renamed in /home/edge d.h. Schritt 4 wird nicht funktionieren. - empedokles
@ JTC noch nie bearbeiten sudoers mit Ebene nano. Verwenden Sie immer visudo. - styrofoam fly


Um alles zusammenzufassen:

  1. Auf dem Startbildschirm drücken Sie Strg+Alt+F1.
  2. Loggen Sie sich mit Ihrem Benutzernamen und Passwort ein.
  3. Legen Sie ein Passwort für das Konto "root" fest.

    sudo passwd root
    
  4. Ausloggen.

    exit
    
  5. Melden Sie sich mit dem Konto "root" und dem Passwort an, das Sie zuvor festgelegt haben.

  6. Ändern Sie den Benutzernamen und den Basisordner in den neuen Namen, den Sie möchten.

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. Ändern Sie den Gruppennamen in den neuen Namen, den Sie möchten.

    groupmod -n <newgroup> <oldgroup>
    
  8. Sperren Sie das Konto "root".

    passwd -l root
    
  9. Wenn Sie ecryptfs (verschlüsseltes Home-Verzeichnis) verwenden. Mounten Sie Ihr verschlüsseltes Verzeichnis mit ecryptfs-recover-privateund bearbeiten <mountpoint>/.ecryptfs/Private.mnt um Ihr neues Heimatverzeichnis widerzuspiegeln.

  10. Ausloggen.

    exit
    
  11. Drücken Sie Strg+Alt+F7.

Und jetzt können Sie sich mit Ihrem neuen Benutzernamen einloggen.


90
2017-07-06 09:43



Wenn nach usermod -l  du bekommst ein user <oldname> is currently used by process <processno>, Sie können diesen Prozess finden (wahrscheinlich ein Daemon, oder tmux / screen) mit ps aux | grep <processno>. Möglicherweise möchten Sie diesen Prozess ordnungsgemäß beenden, anderenfalls können Sie dies tun kill <processno>. - RedPixel
Danke, dass Sie diesen Kommentar zusammengefügt haben. Es war sehr nützlich. Zwei Dinge, die vielleicht erwähnt werden. Nach Schritt 4 habe ich neu gestartet, so dass ich in Schritt 6 keine Fehlermeldungen erhalten würde. Nachdem dieser Vorgang abgeschlossen ist, wird die Datei / etc / passwd einen ID-Kommentar haben, der dem alten Benutzernamen entspricht. Dadurch wird auf dem Anmeldebildschirm der alte Anmeldename angezeigt. Ich konnte keinen vernünftigen Weg finden, es von der Kommandozeile aus zu beheben, aber ich habe es behoben, indem ich mich beim Benutzerkonto angemeldet habe, zu den Kontoeinstellungen gegangen bin und den "Anmeldenamen" in den Benutzernamen geändert habe. Dadurch wurde die Datei / etc / passwd aktualisiert und das Problem behoben. - Jibbers
Dies ist der einfachste und sicherste Weg, dies zu tun. Es ist besser, nach Schritt 4 neu zu starten, wie @Jibbers vorgeschlagen hat. - Yerke
Ich würde erwähnen, dass die "Lesezeichen in den Dateibrowserfenstern" jetzt auf die alten Ordner zeigen, also muss ich diese Lesezeichen löschen. - ollydbg23
Wird nicht funktionieren. Wenn Sie am Anfang Strg + Alt + F1 drücken, versucht es sich beim neu erstellten Benutzer anzumelden, was nicht erlaubt ist. - empedokles


Im Wiederherstellungsmodus neu starten und zur Root-Eingabeaufforderung wechseln ("Drop to root shell prompt")

Zuerst mounten Sie die Wurzel erneut

mount -o remount,rw /

Um den Benutzernamen und den Namen des Home-Ordners zu ändern,

usermod -l <newname> -d /home/<newname> -m <oldname>

Für Gruppennamen,

groupmod -n <newgroup> <oldgroup>

24
2018-04-08 09:23



wenn ich benutze usermod -l <newname> -d /home/<newname> -m <oldname> Das gibt mir einen Fehler usermod: user oldusername is currently used by process 3170 und wenn ich den Prozess trotzdem abbringe, gibt es mir den gleichen Fehler. Ubuntu verwenden 13.10 - Waqas
Tun Sie dies nicht, wenn Ihr Home-Verzeichnis verschlüsselt ist !!!! Ich folgte diesem Verfahren und es schickte mich für eine wilde 2-stündige Fahrt ... Die einzige Möglichkeit, um wiederherzustellen, ist, diesen Vorgang erneut durchzuführen und den ursprünglichen (nicht gefallenen) Namen wieder einzufügen. Das Problem wird sein "Kann nicht Chdir in Mount Punkt" - Mike


(Ubuntu 13.10, 14.04, 16.04) Klicken Sie auf das Symbol "Systemeinstellungen". Klicken Sie dann auf "Benutzerkonten". Ihr Administratorkonto sollte angezeigt werden. Klicken Sie auf die Schaltfläche "Entsperren". Geben Sie Ihr Benutzerpasswort wie gewünscht ein, um Änderungen an Ihrem Konto zu ermöglichen. Nach dem Freischalten können Sie auf Ihren alten Benutzernamen klicken, den Sie ändern möchten, und einen neuen Benutzernamen eingeben, um ihn zu ersetzen. Wenn Sie den neuen Namen eingegeben haben, klicken Sie auf die Schaltfläche "Sperren", um die Änderung dauerhaft zu machen. Starte Ubuntu neu.


10
2017-07-07 22:45



Das hat den Benutzernamen für mich nicht geändert, nur der Name. Der alte Benutzername erscheint immer noch im Terminal und als Home-Verzeichnis und Gruppe (auch nach dem Neustart). - DougC


Beim Empfang usermod: can't change /etc/password Führen Sie einfach die folgenden Befehle aus:

Führen Sie in der Stammwiederherstellungskonsole Folgendes aus:

mount -o remount,rw /

Dann wiederhole:

usermod -l <newname> -d /home/<newname> -m <oldname>

3
2017-07-30 12:14





wenn Sie das tun usermod -l <newname> -d /home/<newname> -m <oldname> Sie erhalten useradd: can't change /etc/passwd Fehlermeldung, um dies zu vermeiden, einfach hinzufügen sudo -- über obigen Befehl wie

sudo -- usermod -l <newname> -d /home/<newname> -m <oldname>

und

sudo --  groupmod -n <newgroup> <oldgroup>

0
2017-08-06 06:12





Da nicht alle PCs das haben usermod App können Sie es manuell tun. Als root offen /etc/passwd bearbeiten:

sudo vim /etc/passwd

und ändern Sie den Namen des Benutzers am Anfang einer Zeile:

user:x:500:501:username:home/user:/bin/bash

zu:

newuser:x:500:501:username:home/user:/bin/bash

dann wenn du von root nur eingeloggt bist, und wenn du eingeloggt bist user, Abmelden und Neuanmeldung.


-3
2017-12-16 13:15



Ich habe es auf diese Weise versucht (bevor ich die usermod Befehl) und das Passwort des Benutzers wird nicht mehr akzeptiert. - Ben Voigt
@BenVoigt nicht alle PCs haben das Usermod - Малъ Скрылевъ
Es ist Ubuntu! Wenn es nicht hat usermod Ihre Installation ist kaputt, da sie Teil der passwd Paket, das ist erforderlich. - Auspex