Cambiar UID and GID recursivamente

En muchas instalaciones de GNU/Linux la opcion para establecer un UID and GID personalizado no esta disponible. Pero esto es posible una vez terminada la instalacion de forma facil y simple.

Se preguntaran porque cambiar el UID y GID
En ocaciones estamos trabajando en un entorno en donde es importante tener un UID unico que a su vez coinside con el usuario que tenemos en nuestro servidor IPA ( idm ), solo por citar un ejemplo. Esto es porque muchos recursos estan asociados con el UID, y si tenemos uno diferente pues comenzaremos a tener problemas de acceso; y no queremos que esto nos pase.

Entonces vamos a comenzar con los cambios para lograr esto. Partiremos de los siguientes valores para la explicacion de este cambio:

nombre de usuario: robert
UID: 1000
grupo: robert
GID: 2000
nuevo UID: 24531
nuevo GID: 24531

Primeramente yo recomiendo crear un usuario transitorio, o si pueden iniciar sesion como el usuario root seria ideal. Pero en ocaciones el usuario root tiene el inicio de sesion desabilitado en muchas de las distros de escritorio. Por lo que procedemos a crear el usuario transitorio:

useradd transitorio -G wheel
passwd transitorio

Se preguntaran porque no realizamos los cambios desde nuestro usuario. Es por la simple razon que cuando intenten cambiar el UID les arrojara un error en donde les dira algo como que el UID esta siendo utilizado por un proceso.

Despues de esto simplemente escribimos una clave facil de recordar, algo asi como “password”. Si se percatan hemos agregado este usuario al grupo “wheel”, el cual nos dara priviligios de administracion.

Entonces, ahora hacemos un “Log Out” he iniciamos con el usuario “transitorio”, y abrimos un terminal para realizar los cambios:

sudo usermod -u 24531 robert
sudo find / -user 1000 -exec chown -h 24531 {} \;
sudo groupmod -g 24531 robert
sudo find / -group 2000 -exec chgrp -h 24531 {} \;

Vamos a explicar un poco estos comando
El primero lo que hace es cambiar el UID del usuario al nuevo UID. Despues con un find buscamos todo lo que pertenece al antiguo UID y lo cambiamos al nuevo. Lo mismo se repite para el GID. En este ejemplo estamos partiendo que el nuevo GID va ser el mismo valor del UID.

Entonces ya despues de haber realizado estos cambios podemos realizar nuestra comprobacion ejecutando otros comandos:

sudo ls -l /home/robert
sudo ls -ld /home/robert
sudo id -u robert
sudo id -g robert
sudo grep robert /etc/passwd
sudo grep robert /etc/group

Y como van a poder ver, los cambios se han realizado con exito. Ahora solo queda hacer “Log Out” he iniciar con el usuario robert y una vez dentro; abrimos un terminal y eliminamos el usuario transitorio. Si en su caso logro entrar con el usuario root, pues este paso no seria necesario.

Espero que este material sea de mucha ayuda.

1 thought on “Cambiar UID and GID recursivamente”

  1. Interesante Artículo, sobre todo para los que estamos ingresando al mundo del SysAdmin, y tener un mejor ordenamiento de los usuarios.
    Gracias!

Leave a Reply

Your email address will not be published. Required fields are marked *