¿Cómo cambio mi nombre de usuario?

325

Hace algún tiempo, cuando instalé Ubuntu, elegí un nombre de usuario bastante estúpido para mi cuenta que ya no quiero usar.

¿Cómo cambio esto (incluido el nombre de mi directorio de inicio y el nombre en el terminal) sin perder la configuración de las aplicaciones?
¿Cómo guardo los permisos y mis claves para varias autentificaciones (por ejemplo, correo electrónico, SSH, GPG y más)?
¿Qué configuración podría perderse si cambiara mi nombre de usuario?

Takkat
fuente
¿Por qué no podemos navegar a /usr/share/applications/users.desktop >> Haga clic en el usuario para el que debe cambiarse el nombre? >> Haga clic en Cambiar nombre de usuario >> Cambie el nombre >> Haga clic en Aceptar. Creo que esta sería la forma más fácil de cambiar el nombre de usuario, ¿no?
Anand

Respuestas:

325

Los sistemas operativos tipo Unix desacoplan el nombre de usuario de la identidad del usuario, por lo que puede cambiar el nombre de manera segura sin afectar la ID. Todos los permisos, archivos, etc. están vinculados a su identidad (uid), no a su nombre de usuario.

Para administrar todos los aspectos de la base de datos de usuarios, utiliza la usermodherramienta.

Para cambiar el nombre de usuario (probablemente sea mejor hacer esto sin haber iniciado sesión):

sudo usermod -l newUsername oldUsername

Sin embargo, esto no cambia el nombre de la carpeta de inicio.

Para cambiar la carpeta de inicio, use

sudo usermod -d /home/newHomeDir -m newUsername

después de cambiar el nombre de usuario.

Por ejemplo, podría cerrar sesión, acceder a una consola ( Ctrl+ Alt+ F1) y sudo su -convertirse en root verdadero (en lugar de sudo -s, donde $ HOME todavía es / home / yourname). Quizás también deba eliminar algunos procesos aún en ejecución de este usuario primero. Para hacerlo, ingrese ps -u username, busque el PID correspondiente y elimínelos kill PID-number.

Actualización: como se mencionó, algunos archivos pueden hacer referencia a su antiguo directorio de inicio. Puede mantener un enlace simbólico para compatibilidad con versiones anteriores, por ejemplo, ln -s /home/newname /home/oldnameo puede cambiar el contenido del archivo con sed -i.bak 's/*oldname*/*newname*/g' *list of files*Crea una copia de seguridad para cada archivo con una extensión .bak.

Alguna información adicional para usuarios no tan experimentados como yo:
como solo tengo UNA cuenta de usuario (administrador), no me permitió cambiar el nombre de usuario ("ya has iniciado sesión" fue la respuesta en TTY1 ( Ctrl+ Alt+ F1). alrededor de esto:

  1. Inicie sesión con sus credenciales anteriores y agregue un nuevo usuario, por ejemplo, "temporal" en TTY1:

    sudo adduser temporary
    

    establecer la contraseña

  2. Permita que el usuario temporal ejecute sudo agregando el usuario al grupo sudo:

    sudo adduser temporary sudo
    
  3. Cerrar sesión con el comando exit.
  4. Regrese a tty1: inicie sesión con la cuenta de usuario 'temporal' y la contraseña. Cambie su nombre de usuario y carpeta como se mencionó anteriormente. exit(hasta que aparezca el mensaje de inicio de sesión)
  5. Regrese a TTY7 ( Ctrl+ Alt+ F7) para iniciar sesión en la GUI / pantalla de escritorio normal y ver si esto funciona.
  6. Eliminar usuario temporal y carpeta:

    sudo deluser temporary
    sudo rm -r /home/temporary
    
Egil
fuente
11
Desafortunadamente, esto no es cierto para diferentes archivos de configuración en $ HOME, intente ejecutar algo como grep -IRFl /home/username ~y verá cuántas referencias a su directorio de inicio se almacenan allí.
organizar el
1
Fue una solución simple: solo tenía que usar el editor de Cuentas de usuario en la unidad, seguido de reiniciar.
Steve Koch
66
Para aquellos con una carpeta de inicio encriptada, tendrá que editar /home/.ecryptfs/oldusername/.ecryptfs/Private.mntpara apuntar a su nueva carpeta de inicio, de lo contrario no podrá iniciar sesión a través de Unity.
Rafael
2
sudo usermod -d /home/edge -m edgerendimientos: usermod: Directory /home/empedokles could not be renamed in /home/edgees decir, el paso 4 no funcionará.
empedokles
2
@JTC nunca edita sudoerscon plain nano. Siempre uso visudo.
espuma de poliestireno volar
108

Para poner todo junto:

  1. En la pantalla de inicio presione Ctrl+ Alt+ F1.
  2. Inicie sesión con su nombre de usuario y contraseña.
  3. Establezca una contraseña para la cuenta "raíz".

    sudo passwd root
    
  4. Cerrar sesión.

    exit
    
  5. Inicie sesión con la cuenta "root" y la contraseña que estableció anteriormente.

  6. Cambie el nombre de usuario y la carpeta de inicio al nuevo nombre que desee.

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. Cambie el nombre del grupo al nuevo nombre que desee.

    groupmod -n <newgroup> <oldgroup>
    
  8. Bloquee la cuenta "raíz".

    passwd -l root
    
  9. Si estaba utilizando ecryptfs (directorio de inicio encriptado). Monte su directorio encriptado usando ecryptfs-recover-privatey edite <mountpoint>/.ecryptfs/Private.mntpara reflejar su nuevo directorio de inicio.

  10. Cerrar sesión.

    exit
    
  11. Presione Ctrl+ Alt+ F7.

Y ahora puede iniciar sesión con su nuevo nombre de usuario.

Valentin Uveges
fuente
66
Si después de usermod -l obtener un user <oldname> is currently used by process <processno>, puede encontrar ese proceso (probablemente un demonio o tmux / screen) usando ps aux | grep <processno>. Es posible que desee detener ese proceso con gracia, de lo contrario puede hacerlo kill <processno>.
RedPixel
1
Gracias por poner este comentario juntos. Fue muy útil. Sin embargo, hay dos cosas que podrían mencionarse. Después del paso 4, reinicié para no recibir mensajes de error en el paso 6. Además, una vez completado este proceso, el archivo / etc / passwd tendrá un comentario de ID que coincida con el nombre de usuario anterior. Esto hará que la pantalla de inicio de sesión muestre el nombre de inicio de sesión anterior. No pude encontrar una forma decente de solucionarlo desde la línea de comandos, pero lo solucioné iniciando sesión en la cuenta de usuario, yendo a la configuración de la cuenta y cambiando el "Nombre de inicio de sesión" al nombre de usuario. Esto actualizó el archivo / etc / passwd y solucionó el problema.
Jibbers
1
Esta es la forma más fácil e infalible de hacerlo. Es mejor reiniciar después del paso 4 como sugirió @Jibbers.
Yerke
Mencionaría que los "marcadores en las ventanas del explorador de archivos" ahora apuntan a las carpetas antiguas, así que tengo que eliminar esos marcadores.
ollydbg23
No funcionará Si presiona Ctrl + Alt + F1 al principio, está intentando iniciar sesión en el usuario recién creado que no permitirá.
empedokles
27

Reinicie en modo de recuperación y vaya al intérprete de comandos de la raíz ("Soltar al intérprete de comandos de la raíz")

Primero remonta la raíz

mount -o remount,rw /

Para cambiar el nombre de usuario y el nombre de la carpeta de inicio,

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

Para el nombre del grupo,

groupmod -n <newgroup> <oldgroup>
karthick87
fuente
1
cuando uso usermod -l <newname> -d /home/<newname> -m <oldname>esto me da un error usermod: user oldusername is currently used by process 3170y si aún mato el proceso, me da el mismo error. usando ubuntu 13.10
Waqas
44
¡NO HAGA ESTO SI EL DIRECTORIO DE SU HOGAR ESTÁ ENCRIPTADO! Seguí este procedimiento y me envió a un viaje salvaje de 2 horas ... La única forma de recuperarme es realizar este procedimiento nuevamente y volver a poner el nombre original (no me gusta). El problema que tendrá es "No se puede montar en el montaje punto "
Mike
¿Por qué no podemos navegar a /usr/share/applications/users.desktop >> Haga clic en el usuario para el que debe cambiarse el nombre? >> Haga clic en Cambiar nombre de usuario >> Cambie el nombre >> Haga clic en Aceptar. Creo que esta sería la forma más fácil de cambiar el nombre de usuario, ¿no?
Anand
9

En Ubuntu 13.10, 14.04, 16.04:

  1. Haga clic en el icono "Configuración del sistema".
  2. Haga clic en "Cuentas de usuario".
  3. Se debe mostrar su cuenta de administrador.
  4. Haga clic en el botón "Desbloquear".
  5. Ingrese su contraseña de usuario según se le solicite para permitir cambios en su cuenta.
  6. Una vez desbloqueado, puede hacer clic en su antiguo nombre de usuario que desea cambiar y escribir un nuevo nombre de usuario para reemplazarlo.
  7. Cuando haya ingresado el nuevo nombre, haga clic en el botón "Bloquear" para que el cambio sea permanente.
  8. Reinicia Ubuntu.
Chicodoodoo
fuente
3
Esto no cambió el nombre de usuario para mí, solo el nombre. El antiguo nombre de usuario todavía aparece en la terminal, y como el directorio de inicio y el grupo (incluso después de reiniciar).
DougC
3

Al recibir usermod: can't change /etc/passwordsimplemente ejecute los siguientes comandos:

En la consola de recuperación raíz, ejecute:

mount -o remount,rw /

Luego vuelva a ejecutar:

usermod -l <newname> -d /home/<newname> -m <oldname>
usuario1511576
fuente
¿Por qué no podemos navegar a /usr/share/applications/users.desktop >> Haga clic en el usuario para el que debe cambiarse el nombre? >> Haga clic en Cambiar nombre de usuario >> Cambie el nombre >> Haga clic en Aceptar. Creo que esta sería la forma más fácil de cambiar el nombre de usuario, ¿no?
Anand
1

La respuesta enumerada aquí por @ karthick87 funciona perfectamente bien, pero esto es lo que haría para estar seguro y evitar todos los problemas técnicos:

  1. Cree una cuenta / usuario por separado y asegúrese de que esta cuenta / usuario rootee las capacidades o inicie sesión como cualquier usuario capaz de rootear.
  2. Cierre sesión con la cuenta actual y luego inicie sesión con la cuenta mencionada en el paso 1.
  3. Mata todos los procesos del usuario anterior.
  4. Ahora siga los pasos mencionados por @ karthick87 y cambie el nombre de usuario y también el propietario del directorio de inicio.
  5. Luego siga la respuesta de @Sriraj Hebbar para cambiar el nombre del grupo.
  6. cierre sesión con el usuario adicional e inicie sesión con su usuario. Si creó un usuario adicional, elimínelo.
sandeep srivastav vaddiparthy
fuente
0

cuando lo haga usermod -l <newname> -d /home/<newname> -m <oldname>, recibirá useradd: can't change /etc/passwdun mensaje de error para evitar esto, simplemente agregue el sudo --comando anterior como

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

y

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

Como no todas las PC tienen la usermodaplicación, puedes hacerlo manualmente. A partir de la raíz abierta /etc/passwdpara editar:

sudo vim /etc/passwd

y cambie el nombre del usuario al comienzo de una línea:

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

a:

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

luego, si trabajó en root, simplemente inicie sesión y si ha iniciado usersesión, cierre sesión y vuelva a iniciar sesión.

Малъ Скрылевъ
fuente
Lo intenté de esta manera (antes de descubrir el usermodcomando) y la contraseña del usuario ya no se acepta.
Ben Voigt
@BenVoigt no todas las PC tienen usermod
Малъ Скрылевъ
3
¡Es Ubuntu! Si no tiene usermodsu instalación está rota, ya que es parte del passwdpaquete, que es obligatorio .
Auspex