Cambiar el UID y el GID de un usuario local puede ser una tarea un poco incómoda porque no sólo tenemos que cambiar los identificadores de usuario y grupo del propio usuario; sino que además tendremos que modificar el UID y el GID de todos aquellos ficheros que pertenezcan al usuario en el sistema para que sigan perteneciéndole una vez cambiados los identificadores del usuario.
Para facilitarme el trabajo, he escrito un script muy sencillo que pregunte los datos y me permita realizar todos estos cambios de una manera automática:
changeUserUidGid:
#!/bin/bash
#
# Cambiar el UID y el GID de un usuario determinado
# Esteban M. Navas
# 15/10/2015
read -p "Login del usuario: " LOGIN
read -p "Grupo del usuario: " GROUP
OLDUID=`id $LOGIN | cut -f1 -d" " | cut -f1 -d"(" | cut -f2 -d"="`
OLDGID=`id $LOGIN | cut -f2 -d" " | cut -f1 -d"(" | cut -f2 -d"="`
read -p "Nuevo UID: " NEWUID
read -p "Nuevo GID: " NEWGID
usermod -u $NEWUID $LOGIN
groupmod -g $NEWGID $GROUP
find / -user $OLDUID -exec chown -h $NEWUID {} \; 2>/dev/null
find / -group $OLDGID -exec chgrp -h $NEWGID {} \; 2>/dev/null
usermod -g $NEWGID $LOGIN
echo "Proceso concluido"
Como podéis ver, el script solicita que el usuario introduzca el login y el grupo del usuario junto con los nuevos uid y gid que quiera asignar. Una vez introducidos, cambiará el identificador de usuario:
usermod -u $NEWUID $LOGIN
Modificará el identificador del grupo:groupmod -g $NEWGID $GROUP
Cambiará el uid de todos los ficheros pertenecientes al usuario:find / -user $OLDUID -exec chown -h $NEWUID {} \; 2>/dev/null
Modificará el gid de todos los ficheros propiedad del usuario:find / -group $OLDGID -exec chgrp -h $NEWGID {} \; 2>/dev/null
usermod -g $NEWGID $LOGIN
Dejo a continuación el enlace por si queréis descargarlo:https://copy.com/gKmTqMkh1w3pcGIW
Publicado por primera vez en http://enavas.blogspot.com.es
0 comentarios:
Publicar un comentario