Supongamos que queremos cambiar el UID (USER ID) y el GID (GROUP ID) para todos los ficheros y directorios de un usuario. El procedimiento es muy sencillo:
- Primero, asigna un nuevo UID al usuario usando el comando usermod.
- Segundo, asigna un nuevo GID al grupo usando el comando groupmod.
- Finalmente, utiliza los comandos chown y chgrp para cambiar los antiguos UID y GID respectivamente. Puedes automatizar este proceso con la ayuda del comando find.
Por seguridad, es importante hacer una copia de seguridad de tu sistema antes de hacer esto.
Supongamos que tenemos:
- Nombre de usuario: foo
- Viejo UID de foo: 1005
- Nuevo UID de foo: 2005
- Nombre de grupo de usuario: foo
- Viejo GID de foo: 2000
- Nuevo GID de foo: 3000
Comandos:
Para asignar un nuevo UID al usuario llamado foo, escribe:
# usermod -u 2005 foo
Para asignar un nuevo GID al grupo llamado foo, escribe:
# groupmod -g 3000 foo
Tan pronto como como escribes los anteriores comandos, todos los fichero ubicados en el directorio home del usuario tendrán el UID cambiado automáticamente. Sin embargo, los ficheros que se encuentran fuera del directorio home del usuario tendrán que ser cambiados manualmente. Para cambiar manualmente fichero con los viejos GID y UID respectivamente, escribe:
# find / -group 2000 -exec chgrp -h foo {} \;
# find / -user 1005 -exec chown -h foo {} \;
El comando -exec ejecuta el comando chgrp o chmod en cada fichero. La opción -h pasada al comando chgrp/chmod afecta a cada enlace simbólico en vez de a cualquier fichero referenciado.