Cambiar el UID y GID para todos los archivos de un usuario

publicado a la‎(s)‎ 2 oct. 2016 6:25 por Juan Jose Ramirez Lama
Supongamos que queremos cambiar el UID (USER ID) y el GID (GROUP ID) para todos los archivos y directorios de un usuario.  El procedimiento es muy sencillo:
  1. Primero, asigna un nuevo UID al usuario usando el comando usermod.
  2. Segundo, asigna un nuevo GID al grupo usando el comando groupmod.
  3. 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:
  1. Nombre de usuario: foo
  2. Viejo UID de foo: 1005
  3. Nuevo UID de foo: 2005
  4. Nombre de grupo de usuario: foo
  5. Viejo GID de foo: 2000
  6. 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 archivo ubicados en el directorio home del usuario tendrán el UID cambiado automáticamente.  Sin embargo, los archivos que se encuentran fuera del directorio home del usuario tendrán que ser cambiados manualmente. 

Para cambiar manualmente archivo 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 archivo.  La opción -h pasada al comando chgrp/chmod afecta a cada enlace simbólico en vez de a cualquier archivo referenciado.

Comments