Forma correcta de cambiar el nombre de usuario en Ubuntu o cualquier Linux

26

Estoy usando Ubuntu 12.04 e hice algunas personalizaciones. También lo convertiré en un nuevo iso que es ubuntu personalizado.

Lo que quiero preguntar es cómo puedo cambiar mi nombre de usuario. Hay mucha configuración en mi carpeta de inicio actual. Así que no quiero equivocarme con cambiar el nombre de usuario.

Entonces, ¿hay alguna mejor práctica o flujo de trabajo para hacer eso?

Cuerpo calloso
fuente
Su directorio de inicio a menudo se crea con su nombre de usuario, pero puede cambiar el nombre de usuario sin cambiar el directorio de inicio cambiando los primeros elementos de las entradas en / etc / passwd y / etc / shadow. Asegúrese de que puede iniciar sesión como root (no solo sudo desde su inicio de sesión de usuario) en caso de que cometa un error.
Anthon
¿Qué pasa si quiero cambiar el nombre del directorio de inicio? ¿Y qué quiere decir exactamente con sayin first elements?
CorpusCallosum el

Respuestas:

28

¿La forma realmente correcta? Digamos que quiere cambiar el usuario 'peter' a 'paul'.

groupadd paul
usermod -d /home/paul -m -g paul -l paul peter

Esto cambia el nombre, el grupo, el directorio de inicio y la propiedad y el grupo de ese directorio a los nuevos, junto con todos los archivos. Terminas con un usuario indistinguible de haber sido creado originalmente como 'Paul'.

Otra forma sería editar los primeros campos de las entradas de Peter en los archivos /etc/passwdy /etc/shadow. Luego cambie cada aparición de 'peter' a 'paul' en /etc/group. Luego cambie el nombre del directorio de inicio de /home/petera /home/paul. Y luego chown -R paul /home/peterpara obtener las propiedades y grupos del directorio y todos los archivos y directorios debajo de él para tener los nuevos.

Steve Bergman
fuente
3
No es necesario el chown si ha editado / etc / {passwd, shadow, group} - el inode almacena el propietario y los grupos numéricamente
Graham Nicholls
5

Yo recomendaría no intentar cambiar el nombre de un usuario. Esto generalmente se actuó juntamente con problemas cuando el nombre del usuario se hace referencia de forma estática en los archivos de configuración en forma de directorio personal del usuario, /home/<username>. Casi nunca se escriben de manera genérica, por lo que generalmente es mejor crear un nuevo nombre de usuario y luego migrar los archivos y datos del usuario a la nueva cuenta.

slm
fuente
1
Gracias por el comentario. Creé un nuevo usuario y cambio el ID de usuario / grupo y el directorio de inicio con respecto al anterior. Parece que todo está funcionando bien. ¿Crees que este método también puede causar problemas?
CorpusCallosum
3

Prueba el comando usermod .

exec sudo su
usermod --login newname oldname
dgmltn
fuente
Solo haz 'sudo lo que sea que ibas a hacer'. Hacer sudo su no registrará correctamente los comandos.
Keith Twombley
3

Tú puedes cambiarlo; ver ¿Cómo cambio mi nombre de usuario? en AskUbuntu. Esas instrucciones me funcionaron bien. Para preservar su configuración, simplemente cree un enlace simbólico para su antiguo directorio de inicio como se describe en las respuestas a esa pregunta.

z0r
fuente
3

Use usermod para cambiar el nombre de usuario y el directorio de inicio . Cambiar usuario peter a paul:

usermod -l paul peter
grep paul /etc/passwd /etc/shadow       # check

cambiar el directorio de inicio y mover todo allí (creado si es necesario)

usermod -m -d /home/paul paul
grep paul /etc/passwd               # check

Cambie el nombre del grupo , pero no use usermod, ya que requiere que primero cree otro grupo (por ejemplo, GID 1001) y aunque actualizará el GID para todo dentro del directorio $ HOME, tendrá que buscar y cambiar el archivos y directorios en otros lugares con la propiedad del antiguo grupo. En cambio, simplemente cambie el nombre del grupo manualmente.

nano /etc/group

y cambio

peter:x:1000:

a

paul:x:1000:

Tendrá que cambiar los nombres de archivo utilizados por cron, at y otros servicios que usan el nombre de usuario en lugar del UID. Utilizar

find /var -name "*peter*"

para encontrar estos archivos

También tendrá que cambiar los archivos de configuración utilizados por algunos servicios, como las aplicaciones de manejo de correo.

Finalmente, los scripts que usan "/ home / peter /" deberán editarse. Cambie las ocurrencias de "/ home / peter /" a "$ HOME".

No es mucho trabajo cambiar las identidades de los usuarios, solo necesita ser minucioso.

Duane
fuente
Upvoted porque este es el mismo enfoque que uso (por las mismas razones con respecto a la preservación de GID). Por cierto, en realidad puede combinar los dos usermodcomandos en uno y también debe recordar editar /etc/gshadowjunto con /etc/group; Los dos se pueden cambiar con GNU sed: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- o mejor aún con sudo groupmod -n newname oldname. Bien hecho para resaltar algunas de las otras trampas, como tener que cambiar manualmente el nombre del crontab del usuario (si tienen uno).
Anthony G - justicia para Monica
Apéndice rápido a esto ... no puede iniciar sesión mientras hace esto. Cree un nuevo usuario temporal que forme parte del grupo de sudoers, inicie sesión con eso, realice los cambios, cierre la sesión de la nueva cuenta temporal, inicie sesión en el renombrado y elimine la cuenta temporal.
Janus