En ocasiones puede ser necesario modificar el nombre de un usuario en Linux o su UID (user identifier) y GID (group identifier). Esto sería útil por ejemplo, cuando tenemos un usuario creado en dos sistemas distintos que comparten un Filesystem, para poder visualizar y generar los permisos del filesystem compartido, tener el mismo GID y UID en ambas máquinas es clave. De otro modo veríamos así los directorios y archivos:
Sistema 1:
drwxr-xr-x. 2 foo foo 2 jul 25 16:59 prueba
Sistema 2:
drwxr-xr-x. 2 1001 1001 2 jul 25 16:59 prueba
Para realizar modificaciones de usuario utilizamos el comando usermod . En el caso anterior nos interesaría que en el sistema 2 el UID del usuario fuera 1001:
Sistema 1:
foo:x:1001:1001:foo,,,:/home/foo:/bin/bash
Sistema 2:
foo:x:501:501:foo,,,:/home/foo:/bin/bash
Para modificar el UID, utilizamos «usermod» con el parámetro -u seguido del UID a asignar:
# usermod -u 1001 foo
Vemos que se ha modificado el UID, pero también nos interesa cambiar el GID:
foo:x:1001:501:foo,,,:/home/foo:/bin/bash
Para ello utilizamos el comando «groupmod» con el parámetro -g seguido del GID a asignar:
# groupmod -g 1001 foo
Vemos que se ha modificado el GID:
foo:x:1001:1001:foo,,,:/home/foo:/bin/bash
Cambiar o renombrar el nombre de usuario es sencillo:
# usermod -l nombre_nuevo nombre_viejo
# usermod -l bar foo
# grep bar /etc/passwd bar:x:1001:1001:foo,,,:/home/foo:/bin/bash
Te falta, tras el cambio, en la máquina donde has realizado el cambio hacer un chown de todos los ficheros locales, el $HOME, etc.
Los directorios y archivos de la /home creo que se cambian automáticamente:
En todo caso, podríamos usar find para encontrar y cambiar todos los ficheros:
Gracias y saludos
Saludos