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?
permissions
keyrings
gnupg
ssh
user-profile
Takkat
quelle
quelle
Antworten:
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
usermod
Tool.So ändern Sie den Benutzernamen (wahrscheinlich ist es am besten, dies zu tun, ohne angemeldet zu sein):
Hierdurch wird der Basisordner jedoch nicht umbenannt.
Verwenden Sie zum Ändern des Basisordners
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 Rootsudo -s
anmelden (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 einps -u username
, suchen Sie nach der passenden PID und töten Sie sie durchkill 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/oldname
oder 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:
Melden Sie sich mit Ihren alten Anmeldeinformationen an und fügen Sie einen neuen Benutzer hinzu, z. B. "temporär" in TTY1:
Legen Sie das Passwort fest.
Ermöglichen Sie dem temporären Benutzer das Ausführen von sudo, indem Sie den Benutzer zur sudo-Gruppe hinzufügen:
exit
.exit
(bis Sie die Anmeldeaufforderung erhalten)Temporären Benutzer und Ordner löschen:
quelle
grep -IRFl /home/username ~
und Sie werden sehen, wie viele Verweise auf Ihr Home-Verzeichnis dort gespeichert sind./home/.ecryptfs/oldusername/.ecryptfs/Private.mnt
, um auf Ihren neuen Basisordner zu verweisen. Andernfalls können Sie sich nicht über Unity anmelden.sudo usermod -d /home/edge -m edge
Erträge:usermod: Directory /home/empedokles could not be renamed in /home/edge
dh Schritt 4 wird nicht funktionieren.sudoers
mit plain bearbeitennano
. Immer benutzenvisudo
.Um alles zusammen zu fassen:
Legen Sie ein Passwort für das Konto "root" fest.
Ausloggen.
Melden Sie sich mit dem "root" -Konto und dem zuvor festgelegten Passwort an.
Ändern Sie den Benutzernamen und den Basisordner in den gewünschten neuen Namen.
Ändern Sie den Gruppennamen in den gewünschten neuen Namen.
Sperren Sie das "root" Konto.
Wenn Sie ecryptfs (verschlüsseltes Basisverzeichnis) verwenden. Hängen Sie Ihr verschlüsseltes Verzeichnis ein
ecryptfs-recover-private
und bearbeiten Sie es<mountpoint>/.ecryptfs/Private.mnt
, um Ihr neues Basisverzeichnis wiederzugeben.Ausloggen.
Drücken Sie Ctrl+ Alt+ F7.
Und jetzt können Sie sich mit Ihrem neuen Benutzernamen anmelden.
quelle
usermod -l
Sie nach demuser <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 Siekill <processno>
.Starten Sie im Wiederherstellungsmodus neu und wechseln Sie zur Root-Eingabeaufforderungs-Shell ("Drop to root shell prompt").
Zuerst die Wurzel wieder montieren
So ändern Sie den Benutzernamen und den Namen des Basisordners:
Für Gruppennamen
quelle
usermod -l <newname> -d /home/<newname> -m <oldname>
wird mir ein Fehler angezeigt,usermod: user oldusername is currently used by process 3170
und wenn ich den Prozess immer noch abbreche, wird mir der gleiche Fehler angezeigt. mit Ubuntu 13.10Unter Ubuntu 13.10, 14.04, 16.04:
quelle
usermod: can't change /etc/password
Führen Sie beim Empfang einfach die folgenden Befehle aus:Führen Sie in der Root-Wiederherstellungskonsole Folgendes aus:
Führen Sie dann Folgendes erneut aus:
quelle
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:
quelle
wenn Sie das tun ,
usermod -l <newname> -d /home/<newname> -m <oldname>
die Sie erhaltenuseradd: can't change /etc/passwd
hinzufügen Fehlermeldung zu vermeiden , dies nursudo --
zu obigem Befehl wieund
quelle
Da nicht alle PCs über die
usermod
App verfügen , können Sie dies manuell tun. Ab Root/etc/passwd
zum Bearbeiten geöffnet :und ändern Sie den Benutzernamen am Anfang einer Zeile:
zu:
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
usermod
Befehl entdeckt habe) und das Kennwort des Benutzers wird nicht mehr akzeptiert.usermod
Ihre Installation fehlerhaft, da sie Teil des erforderlichenpasswd
Pakets ist .