Al intentar cambiar el nombre de usuario, el terminal me dice que el usuario está usando actualmente el proceso


16

Estoy tratando de cambiar mi nombre de usuario, según el consejo aquí, sin embargo, después de ejecutar el siguiente comando:

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

El terminal responde con:

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

Y el nombre de usuario permanece igual. ¿Alguien sabe cómo podría solucionar esto y cambiar mi nombre de usuario después de todo?

Respuestas:


8

Para citar 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.

Por lo tanto, debe asegurarse de que el usuario al que renombra no esté conectado.

Además, noto que no está ejecutando esto como root. Ejecútelo como root o con "sudo usermod".


3
si no puede matar el proceso sin que se reinicie, combine el comando, por ejemplokill -9 23162 && sudo usermod -l TheNameIWantToChange -d /home/TheNameIWantToChange -m CurrentName
Richard Frank el

2
El programa usermodparece estar roto por diseño. Si la gestión de usuarios se realiza en un servidor LDAP, siempre es posible cambiar un atributo de usuario y no depende del sistema en ejecución. Estoy usando Ansible qué usos usermody el sistema de agujero no es fiable, ya que los cambios son bloqueados por los usuarios conectados.
ceving

1

Creo que deberías ejecutar el comando con otro usuario. Inicie sesión con root u otro usuario e intente nuevamente. Si está en la ventana x con el usuario que desea cambiar, suena lógico que los comandos fallen.


1

Esto es principalmente un problema con Ubutu donde no tienes una cuenta raíz para iniciar sesión desde el primer lugar. Entonces esto crea una contradicción: soy un usuario en el grupo sudoer. No puedo cambiar mi propio uid.

No estoy seguro de que esta sea la mejor solución. Primero creo una cuenta falsa foo, agrego esto a la lista de sudo. Luego inicio sesión en la cuenta foo y ejecuto usermod -g MYOWNGID mylogin


0

Tengo el mismo problema con usermod, se solucionó con el parámetro -m, que mueve el contenido del directorio de inicio a una nueva localización. Use esta opción en combinación con -d (modifique el directorio principal del usuario, donde hay usuario).

Sugiero ver el comando man usermod


0

Intenta estos pasos:

  1. Establezca la contraseña para el usuario root:

raíz sudo passwd

  1. reiniciar ubuntu
  2. Inicie sesión como "root" después del arranque -> Esto permitirá que ubuntu no genere ningún proceso para el usuario actual.
  3. Cambiar el nombre de usuario

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

  4. Verifique que el nombre de usuario haya cambiado verificando el nombre de la carpeta con el nuevo nombre de usuario en el directorio / home

-1

No debe cambiar el nombre de usuario de un usuario conectado. En su lugar, debe finalizar todos los procesos del usuario, desconectarse, iniciar sesión como un usuario diferente y luego cambiar el nombre.

Si parece demasiado trabajo, puede conectar el cambio: https://medium.com/@deltazero/linux-howto-rename-currently-operating-user-f8fae62db110

Funciona así:

# 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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.