Wie ändere ich meinen Benutzernamen?

325

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

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

Takkat
quelle
Warum können wir nicht zu /usr/share/applications/users.desktop navigieren? >> Klicken Sie auf den Benutzer, dessen Name geändert werden muss. >> Klicken Sie auf Benutzername ändern >> Ändern Sie den Namen >> Klicken Sie auf OK. Ich denke, das wäre der einfachste Weg, den Benutzernamen zu ändern, nicht wahr?
Anand

Antworten:

324

Unix-ähnliche Betriebssysteme entkoppeln den Benutzernamen von der Benutzeridentität, sodass Sie den Namen ohne Beeinträchtigung der ID sicher ändern können. Alle Berechtigungen, Dateien usw. sind an Ihre Identität (UID) gebunden, nicht an Ihren Benutzernamen.

Um jeden Aspekt der Benutzerdatenbank zu verwalten, verwenden Sie das usermodTool.

So ändern Sie den Benutzernamen (wahrscheinlich ist es am besten, dies zu tun, ohne angemeldet zu sein):

sudo usermod -l newUsername oldUsername

Hierdurch wird der Basisordner jedoch nicht umbenannt.

Verwenden Sie zum Ändern des Basisordners

sudo usermod -d /home/newHomeDir -m newUsername

nachdem Sie den Benutzernamen geändert haben.

Sie könnten sich beispielsweise abmelden, zu einer Konsole wechseln ( Ctrl+ Alt+ F1) und sudo su -sich als Root sudo -sanmelden (im Gegensatz zu $ HOME ist dies immer noch / home / yourname). Möglicherweise müssen Sie auch einige noch laufende Prozesse dieses Benutzers beenden zuerst. Geben Sie dazu ein ps -u username, suchen Sie nach der passenden PID und töten Sie sie durch kill PID-number.

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

Einige zusätzliche Informationen für nicht so erfahrene Benutzer wie mich:
Da ich nur EIN Benutzerkonto (Administrator) habe, würde es mich nicht erlauben, den Benutzernamen zu ändern ("Sie sind bereits angemeldet" lautete die Antwort in TTY1 ( Ctrl+ Alt+ F1) darum herum:

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

    sudo adduser temporary
    

    Legen Sie das Passwort fest.

  2. Ermöglichen Sie dem temporären Benutzer das Ausführen von sudo, indem Sie den Benutzer zur 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 Kennwort an. Ändern Sie Ihren Benutzernamen und Ordner wie oben erwähnt. exit(bis Sie die Anmeldeaufforderung erhalten)
  5. Kehren Sie zu TTY7 ( Ctrl+ Alt+ F7) zurück, um sich auf dem GUI / normalen Desktop-Bildschirm anzumelden und zu prüfen, ob dies funktioniert.
  6. Temporären Benutzer und Ordner löschen:

    sudo deluser temporary
    sudo rm -r /home/temporary
    
Egil
quelle
11
Dies gilt leider nicht für verschiedene Konfigurationsdateien unter $ HOME. Versuchen Sie, so etwas auszuführen, grep -IRFl /home/username ~und Sie werden sehen, wie viele Verweise auf Ihr Home-Verzeichnis dort gespeichert sind.
Ordnen Sie den
1
War eine einfache Lösung - Musste nur den Editor für Benutzerkonten in Unity verwenden, gefolgt von einem Neustart.
Steve Koch
6
Wenn Sie über einen verschlüsselten Basisordner verfügen, müssen Sie diesen bearbeiten /home/.ecryptfs/oldusername/.ecryptfs/Private.mnt, um auf Ihren neuen Basisordner zu verweisen. Andernfalls können Sie sich nicht über Unity anmelden.
Raphael
2
sudo usermod -d /home/edge -m edgeErträge: usermod: Directory /home/empedokles could not be renamed in /home/edgedh Schritt 4 wird nicht funktionieren.
Empedokles
2
@JTC niesudoers mit plain bearbeiten nano. Immer benutzen visudo.
Styropor fliegen
108

Um alles zusammen zu fassen:

  1. Drücken Sie auf dem Startbildschirm Ctrl+ 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 "root" -Konto und dem zuvor festgelegten Passwort an.

  6. Ändern Sie den Benutzernamen und den Basisordner in den gewünschten neuen Namen.

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. Ändern Sie den Gruppennamen in den gewünschten neuen Namen.

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

    passwd -l root
    
  9. Wenn Sie ecryptfs (verschlüsseltes Basisverzeichnis) verwenden. Hängen Sie Ihr verschlüsseltes Verzeichnis ein ecryptfs-recover-privateund bearbeiten Sie es <mountpoint>/.ecryptfs/Private.mnt, um Ihr neues Basisverzeichnis wiederzugeben.

  10. Ausloggen.

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

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

Valentin Uveges
quelle
6
Wenn usermod -l Sie nach dem user <oldname> is currently used by process <processno>Erhalt eines einen finden können, verwenden Sie diesen Prozess (wahrscheinlich einen Daemon oder tmux / screen) ps aux | grep <processno>. Möglicherweise möchten Sie diesen Prozess ordnungsgemäß beenden, andernfalls können Sie kill <processno>.
RedPixel
1
Vielen Dank, dass Sie diesen Kommentar zusammengestellt haben. Es war sehr nützlich. Zwei Dinge, die jedoch erwähnt werden könnten. Nach Schritt 4 wurde der Computer neu gestartet, sodass in Schritt 6 keine Fehlermeldungen mehr angezeigt wurden. Nach Abschluss dieses Vorgangs enthält die Datei / etc / passwd einen ID-Kommentar, der mit dem alten Benutzernamen übereinstimmt. Dadurch wird auf dem Anmeldebildschirm der alte Anmeldename angezeigt. Ich konnte keine anständige Möglichkeit finden, das Problem über die Befehlszeile zu beheben, aber ich habe mich beim Benutzerkonto angemeldet, die Kontoeinstellungen aufgerufen und den "Anmeldenamen" in "Benutzername" geändert. Dadurch wurde die Datei / etc / passwd aktualisiert und das Problem behoben.
Jibbers
1
Dies ist der einfachste und narrensicherste Weg, dies zu tun. Es ist besser, nach Schritt 4 einen Neustart durchzuführen, wie von @Jibbers vorgeschlagen.
Yerke
Ich würde erwähnen, dass die "Lesezeichen in den Fenstern des Dateibrowsers" jetzt auf die alten Ordner verweisen, also muss ich diese Lesezeichen löschen.
Ollydbg23
Wird nicht funktionieren. Wenn Sie zu Beginn Strg + Alt + F1 drücken, wird versucht, sich bei dem neu erstellten Benutzer anzumelden, was nicht zulässig ist.
Empedokles
27

Starten Sie im Wiederherstellungsmodus neu und wechseln Sie zur Root-Eingabeaufforderungs-Shell ("Drop to root shell prompt").

Zuerst die Wurzel wieder montieren

mount -o remount,rw /

So ändern Sie den Benutzernamen und den Namen des Basisordners:

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

Für Gruppennamen

groupmod -n <newgroup> <oldgroup>
karthick87
quelle
1
Wenn ich dies benutze, usermod -l <newname> -d /home/<newname> -m <oldname>wird mir ein Fehler angezeigt, usermod: user oldusername is currently used by process 3170und wenn ich den Prozess immer noch abbreche, wird mir der gleiche Fehler angezeigt. mit Ubuntu 13.10
Waqas
4
TUN SIE DAS NICHT, WENN IHR HEIMATVERZEICHNIS VERSCHLÜSSELT IST !!!! Ich habe dieses Verfahren befolgt und es hat mich für eine wilde 2-stündige Fahrt geschickt. Die einzige Möglichkeit zur Wiederherstellung besteht darin, dieses Verfahren erneut durchzuführen und den ursprünglichen (nicht beliebten) Namen erneut einzugeben point "
Mike
Warum können wir nicht zu /usr/share/applications/users.desktop navigieren? >> Klicken Sie auf den Benutzer, dessen Name geändert werden muss. >> Klicken Sie auf Benutzername ändern >> Ändern Sie den Namen >> Klicken Sie auf OK. Ich denke, das wäre der einfachste Weg, den Benutzernamen zu ändern, nicht wahr?
Anand
9

Unter Ubuntu 13.10, 14.04, 16.04:

  1. Klicken Sie auf das Symbol "Systemeinstellungen".
  2. Klicken Sie auf "Benutzerkonten".
  3. Ihr Administratorkonto sollte angezeigt werden.
  4. Klicken Sie auf die Schaltfläche "Entsperren".
  5. Geben Sie Ihr Benutzerpasswort wie gewünscht ein, um Änderungen an Ihrem Konto zuzulassen.
  6. Nach dem Entsperren können Sie auf Ihren alten Benutzernamen klicken, den Sie ändern möchten, und einen neuen Benutzernamen eingeben, um ihn zu ersetzen.
  7. Wenn Sie den neuen Namen eingegeben haben, klicken Sie auf die Schaltfläche "Sperren", um die Änderung dauerhaft zu speichern.
  8. Ubuntu neu starten.
Chicodoodoo
quelle
3
Dies hat den Benutzernamen für mich nicht geändert, nur den Namen. Der alte Benutzername wird weiterhin im Terminal sowie als Basisverzeichnis und Gruppe angezeigt (auch nach dem Neustart).
DougC
3

usermod: can't change /etc/passwordFühren Sie beim Empfang einfach die folgenden Befehle aus:

Führen Sie in der Root-Wiederherstellungskonsole Folgendes aus:

mount -o remount,rw /

Führen Sie dann Folgendes erneut aus:

usermod -l <newname> -d /home/<newname> -m <oldname>
user1511576
quelle
Warum können wir nicht zu /usr/share/applications/users.desktop navigieren? >> Klicken Sie auf den Benutzer, dessen Name geändert werden muss. >> Klicken Sie auf Benutzername ändern >> Ändern Sie den Namen >> Klicken Sie auf OK. Ich denke, das wäre der einfachste Weg, den Benutzernamen zu ändern, nicht wahr?
Anand
1

Die hier von @ karthick87 aufgeführte Antwort funktioniert einwandfrei, aber ich würde Folgendes tun, um auf Nummer sicher zu gehen und Störungen zu vermeiden:

  1. Erstellen Sie ein separates Konto / einen separaten Benutzer, und stellen Sie sicher, dass dieses Konto / dieser Benutzer über Root-Funktionen verfügt, oder melden Sie sich als ein root-fähiger Benutzer an.
  2. Melden Sie sich mit dem aktuellen Konto ab und melden Sie sich dann mit dem in Schritt 1 genannten Konto an.
  3. Beenden Sie alle Prozesse des vorherigen Benutzers.
  4. Befolgen Sie nun die von @ karthick87 genannten Schritte und ändern Sie den Benutzernamen sowie den Besitzer des Home-Verzeichnisses.
  5. Folgen Sie dann der Antwort von @Sriraj Hebbar, um den Gruppennamen zu ändern.
  6. Mit dem Ersatzbenutzer abmelden und mit Ihrem Benutzer anmelden. Wenn Sie einen zusätzlichen Benutzer erstellt haben, löschen Sie diesen.
Sandeep Srivastav Vaddiparthy
quelle
0

wenn Sie das tun , usermod -l <newname> -d /home/<newname> -m <oldname>die Sie erhalten useradd: can't change /etc/passwdhinzufügen Fehlermeldung zu vermeiden , dies nur sudo --zu obigem Befehl wie

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

und

sudo --  groupmod -n <newgroup> <oldgroup>
Sriraj Hebbar
quelle
-3

Da nicht alle PCs über die usermodApp verfügen , können Sie dies manuell tun. Ab Root /etc/passwdzum Bearbeiten geöffnet :

sudo vim /etc/passwd

und ändern Sie den Benutzernamen am Anfang einer Zeile:

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

zu:

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

Wenn Sie mit root gearbeitet haben user, melden Sie sich einfach an, und wenn Sie angemeldet waren , melden Sie sich ab und melden Sie sich erneut an.

Малъ Скрылевъ
quelle
Ich habe es auf diese Weise versucht (bevor ich den usermodBefehl entdeckt habe) und das Kennwort des Benutzers wird nicht mehr akzeptiert.
Ben Voigt
@ BenVoigt nicht alle PCs haben die usermod
Малъ Скрылевъ
3
Es ist Ubuntu! Ist dies nicht der Fall, ist usermodIhre Installation fehlerhaft, da sie Teil des erforderlichenpasswd Pakets ist .
Auspex