Lorsque vous essayez de changer le nom d'utilisateur, le terminal me dit que l'utilisateur est actuellement utilisé par le processus

16

J'essaye de changer mon nom d'utilisateur, selon les conseils ici cependant après avoir exécuté la commande suivante:

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

Le terminal répond avec:

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

Et le nom d'utilisateur reste le même. Est-ce que quelqu'un sait comment je pourrais résoudre ce problème et changer mon nom d'utilisateur après tout?

Paradoxe
la source

Réponses:

8

Pour citer 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.

Vous devez donc vous assurer que l'utilisateur que vous renommez n'est pas connecté.

De plus, je note que vous ne l'exécutez pas en tant que root. Exécutez-le en tant que root ou exécutez-le avec "sudo usermod".

seumasmac
la source
3
si vous ne pouvez pas tuer le processus sans qu'il redémarre, combinez la commande par exemplekill -9 23162 && sudo usermod -l TheNameIWantToChange -d /home/TheNameIWantToChange -m CurrentName
Richard Frank
2
Le programme usermodsemble être interrompu par conception. Si la gestion des utilisateurs est effectuée sur un serveur LDAP, la modification d'un attribut utilisateur est toujours possible et ne dépend pas du système en cours d'exécution. J'utilise Ansible qui utilise usermodet le système de trous n'est pas fiable, car les modifications sont bloquées par les utilisateurs connectés.
ceving
1

Je pense que vous devez exécuter la commande avec un autre utilisateur. Connectez-vous avec root ou un autre utilisateur, puis réessayez. Si vous êtes dans la fenêtre x avec l'utilisateur que vous souhaitez modifier, il semble logique que les commandes échouent.

Krivos
la source
1

C'est principalement un problème avec Ubutu où vous n'avez pas de compte root pour vous connecter dès le départ. Cela crée donc une contradiction: je suis un utilisateur du groupe sudoer. Je ne peux pas changer mon propre UID.

Pas sûr que ce soit la meilleure solution. Je crée d'abord un faux compte foo, l'ajoute à la liste sudo. Ensuite, je me connecte au compte foo et exécute usermod -g MYOWNGID mylogin

Kemin Zhou
la source
0

J'ai le même problème en utilisant usermod, il a corrigé en utilisant le paramètre -m, qui déplace le contenu du répertoire personnel vers une nouvelle localisation. Utilisez cette option en combinaison avec -d (modifiez le répertoire principal de l'utilisateur, où se trouve l'utilisateur).

Je suggère de voir la commande man usermod

Guillermo Porras Arias
la source
0

Essayez ces étapes:

  1. Définissez le mot de passe de l'utilisateur root:

racine sudo passwd

  1. redémarrer Ubuntu
  2. Connectez-vous en tant que "root" après le démarrage -> Cela permettra à ubuntu de ne générer aucun processus pour l'utilisateur actuel.
  3. Changer le nom d'utilisateur

    usermod -l newuser -d / home / newuser -m olduser

  4. Vérifiez que le nom d'utilisateur a changé en vérifiant le nom du dossier avec le nouveau nom d'utilisateur dans le répertoire / home
Rajib Hasan
la source
-1

Vous ne devez pas changer le nom d'utilisateur d'un utilisateur connecté. Au lieu de cela, vous devez mettre fin à tous les processus utilisateur, vous déconnecter, vous connecter en tant qu'utilisateur différent, puis renommer.

Si cela vous semble trop de travail, vous pouvez câbler le changement: https://medium.com/@deltazero/linux-howto-rename-currently-operating-user-f8fae62db110

Cela fonctionne comme ceci:

# 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
la source