Migración de Usuarios Linux


Aplicable a: Redhat/CentOS/Fedora.

Los archivos y directorios que referencian a los usuarios son los siguientes:
/etc/passwd – Información de las cuentas de usuario del sistema.
/etc/shadow – Contraseñas encriptadas para cada usuario.
/etc/group – Grupos a los cuales pertenecen los usuarios.
/etc/gshadow – Archivo shadow de los grupos.
/home – Archivos de los usuarios.
Ojo: En el servidor destino no deben existir cuentas de usuario.

En el servidor de origen de las cuentas, creamos un directorio para ir guardando los datos:
# mkdir /root/backuser

Para extraer los usuarios del passwd vamos a usar el gran awk:
# awk -F: ‘($3>=500) && ($3!=65534)’ /etc/passwd > /root/backuser/passwd

El -F es para decirle que el field separator es el “:”.
Luego filtra que $3 (posición 3 en el passwd) sea >=500 y != de 65534. En toda la línea Redhat, los UID y los GID arrancan en el 500.
El resultado lo redirigimos ( > ) al nuevo archivo /root/backuser/passwd

Ahora extraemos los grupos:
awk -F: ‘($3>=500) && ($3!=65534)’ /etc/group > /root/backuser/group

Con el shadow hacemos algo parecido, pero en el awk debemos obtener el nombre de usuario, dado que en el shadow ese es el campo clave:
# awk -F: ‘($3>=500) && ($3!=65534) {print $1}’ /etc/passwd | tee – | egrep -f – /etc/shadow > /root/backuser/shadow

Si existe el gshadow, lo copiamos directamente:
# cp /etc/gshadow /root/backuser

Copiamos estos archivos con scp u otro medio al servidor destino. Es decir, a donde queremos migrar los usuarios:
# scp /root/backuser/passwd root@destino:/root/passwd.bak
# scp /root/backuser/group root@destino:/root/group.bak
# scp /root/backuser/shadow root@destino:/root/shadow.bak
# scp /root/backuser/gshadow root@destino:/root/gshadow.bak

Luego, en el servidor destino, previo backup de los archivos originales en el /etc, “cateamos” los archivos obtenidos con el awk dentro de los del sistema:

# cat /root/passwd.bak >> /etc/passwd
# cat /root/shadow.bak >> /etc/shadow
# cat /root/group.bak >> /etc/group
# cat /root/gshadow.bak >> /etc/gshadow

Con esto tendríamos los usuarios migrados. Ahora nos falta migrar la data contenida en los home’s:

Para esto, lo mas práctico es hacer un rsync, por ejemplo:
# /usr/bin/rsync -vah root@serverorigen:/home/ /home/

Ahora crucen los dedos y reinicien…

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s