Beim Versuch, den Benutzernamen zu ändern, teilt das Terminal mir mit, dass der Benutzer derzeit vom Prozess verwendet wird

16

Ich versuche, meinen Benutzernamen zu ändern, wie hier empfohlen, nachdem ich den folgenden Befehl ausgeführt habe:

CurrentName@HostName ~ $ sudo usermod -l TheNameIWantToChange -d /home/TheNameIWantToChange -m CurrentName

Terminal antwortet mit:

CurrentName@HostName ~ $ usermod: user CurrentName is currently used by process 2491

Und der Benutzername bleibt gleich. Weiß jemand, wie ich das beheben und meinen Benutzernamen ändern könnte?

Paradox
quelle

Antworten:

8

Um zu zitieren man usermod:

CAVEATS
   You must make certain that the named user is not executing any 
   processes when this command is being executed
   if the user's numerical user ID, the user's name, or the user's home 
   directory is being changed.  usermod
   checks this on Linux, but only check if the user is logged in 
   according to utmp on other architectures.

Sie müssen also sicherstellen, dass der Benutzer, den Sie umbenennen, nicht angemeldet ist.

Außerdem stelle ich fest, dass Sie dies nicht als root ausführen. Führen Sie es entweder als root aus oder mit "sudo usermod".

seumasmac
quelle
2
Wenn Sie den Vorgang nicht abbrechen können, ohne ihn neu zu starten, kombinieren Sie den Befehl, z. B.kill -9 23162 && sudo usermod -l TheNameIWantToChange -d /home/TheNameIWantToChange -m CurrentName
Richard Frank,
2
Das Programm usermodscheint vom Design her kaputt zu sein. Wenn die Benutzerverwaltung auf einem LDAP-Server durchgeführt wird, ist das Ändern eines Benutzerattributs immer möglich und hängt nicht vom ausgeführten System ab. Ich verwende Ansible, die verwendet usermodund das
Lochsystem
1

Ich denke, dass Sie den Befehl mit einem anderen Benutzer ausführen sollten. Melden Sie sich mit root oder einem anderen Benutzer an und versuchen Sie es erneut. Wenn Sie sich mit dem Benutzer, den Sie ändern möchten, im x-Fenster befinden, klingt es logisch, dass die Befehle fehlschlagen.

krivos
quelle
1

Dies ist hauptsächlich ein Problem bei Ubutu, bei dem Sie nicht über ein Root-Konto verfügen, um sich von Anfang an anzumelden. Das führt also zu einem Widerspruch: Ich bin ein Benutzer in der sudoer-Gruppe. Ich kann meine eigene UID nicht ändern.

Ich bin mir nicht sicher, ob dies die beste Lösung ist. Ich erstelle zuerst ein falsches Konto foo, füge dies der sudo-Liste hinzu. Dann melde ich mich bei foo an und führe usermod -g MYOWNGID mylogin aus

Kemin Zhou
quelle
0

Ich habe das gleiche Problem mit usermod, das mit dem Parameter -m behoben wurde, durch das der Inhalt des Basisverzeichnisses in eine neue Lokalisierung verschoben wird. Verwenden Sie diese Option in Kombination mit -d (ändern Sie das Hauptverzeichnis des Benutzers, in dem sich der Benutzer befindet).

Ich schlage vor, den Befehl man usermod zu sehen

Guillermo Porras Arias
quelle
0

Versuchen Sie diese Schritte:

  1. Legen Sie das Passwort für den Root-Benutzer fest:

sudo passwd root

  1. ubuntu neu starten
  2. Melden Sie sich nach dem Booten als "root" an -> Dies ermöglicht Ubuntu, keinen Prozess für den aktuellen Benutzer zu generieren.
  3. Ändern Sie den Benutzernamen

    usermod -l neuer Benutzer -d / home / neuer Benutzer -m alter Benutzer

  4. Überprüfen Sie, ob sich der Benutzername geändert hat, indem Sie den Ordnernamen mit dem neuen Benutzernamen im Verzeichnis / home überprüfen
Rajib Hasan
quelle
-1

Sie sollten den Benutzernamen eines angemeldeten Benutzers nicht ändern. Stattdessen sollten Sie die Prozesse aller Benutzer beenden, die Verbindung trennen, sich als ein anderer Benutzer anmelden und dann umbenennen.

Wenn es zu viel Arbeit zu sein scheint, können Sie die Änderung per Hotwire verbinden: https://medium.com/@deltazero/linux-how-rename-currently-operating-user-f8fae62db110

Das funktioniert so:

# your new username
newuser=dave

# root-run these all at once
sudo su -c "\
  sed -i s/$USER/$newuser/g /etc/group \
  && sed -i s/$USER/$newuser/g /etc/shadow \
  && sed -i s/$USER/$newuser/g /etc/passwd \
  && mv /home/$USER/ /home/$newuser"

# exit & reconnect under new username
dayvee.cz
quelle