quarta-feira, 4 de julho de 2012

Migrando usuários para um novo servidor Linux.



Dica importante.

Como migrar os usuários do meu servidor antigo para um novo servidor ?

No meu caso eu tinha um CentOS 5.5 e migrei para Debian 6, apenas por gosto pessoal.

Exportando os arquivos:

Criando um diretório para largar os backups.

# mkdir /root/move/

# export UGIDLIMIT=500

# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd > /root/move/passwd.mig

# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/group > /root/move/group.mig

# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534) {print $1}' /etc/passwd | tee - |egrep -f - /etc/shadow > /root/move/shadow.mig

# cp /etc/gshadow /root/move/gshadow.mig

# tar -zcvpf /root/move/home.tar.gz /home


IMPORTANTE:

UGIDLIMIT=500 seria o início das ID no CentOS
UGIDLIMIT=1000 seria o início das ID no Debian

Logo, na hora de importar os usuários eu fiz uma alteração no arquivo passwd.mig alterando o UID e GID de 501 para 1001 e assim por diante - Eu substitui usando o vim.

Copiando para o novo servidor

# scp -r /root/move/* joaocep@novoservidor:~/

Importando:

Como root - backup do etc.

# tar -cvf etc.tar /etc/

# cd /home/joaocep/move

# cat passwd.mig >> /etc/passwd

# cat group.mig >> /etc/group

# cat shadow.mig >> /etc/shadow

# cp gshadow.mig /etc/gshadow

# mv home.tar.bz2 / && cd / && tar -czvf home.tar.bz2

# reboot

Sinceramente comigo funcionou, claro ... no /home tive que refazer as permissões pois no CentOS ele compactou usando o UID:GID "500:500" ( condição -p do tar ) e no Debian ele não reconheceu mas isso é pouca coisa, o importante era lembrar as senhas e não causar transtornos maiores ao sistema - chown fulano:grupo fulano/ -R

Para tudo pode-se fazer um script, mas o importante é saber que é possível migrar sem transtornos.

Antes que eu seja apedrejado - sim pode-se fazer o caminho inverso.


abraços.

Referência:
http://www.cyberciti.biz/faq/howto-move-migrate-user-accounts-old-to-new-server/