Como migrar senhas do domínio NT para o
SAMBA
Quando se deseja migrar de um servidor Windows NT para o
SAMBA um dos problemas mais comuns é o fato de que as
senhas de logon são perdidas, pois entre o NT e o SAMBA
a criptografia está em formatos diferentes. Para
resolver este problema existe um pequeno programa que
converte todo o registro de "nome e senha" do Windows NT para
um arquivo smbpasswd compatível com o SAMBA. Siga os
passos abaixo:
Primeiro é preciso conectar-se ao ftp do Samba e
baixar o utilitário pwdump.exe, no seguinte
endereço:
ftp://ftp.samba.org/pub/samba/pwdump/pwdump.exe
Efetue logon como usuário Administrator no servidor
NT (que disponibiliza a autenticação). Em seguida,
abra um Command Prompt e vá até o diretório
que você colocou o pwdump. Rode o comando pwdump da
seguinte maneira:
#pwdump > smbpasswd <enter>
Será gerado um arquivo smbpasswd com as
informações de autenticação (logon e
senha) do Windows NT no formato criptografado utilizado pelo
SAMBA.
Agora copie o arquivo smbpasswd gerado para o servidor
Linux (através de diskete ou diretório
compartilhado, por exemplo). No Linux, jogue o arquivo
smbpasswd criado para o diretório /etc e defina as
permissões para 600:
#chmod 600 /etc/smbpasswd <enter>
Para que funcione corretamente, é importante destacar
que o ID dos usuários seja o mesmo tanto no smbpasswd
quanto no passwwd do Linux. Abra o smbpasswd e exporte os
dados de autenticação (nome do usuário, ID,
etc) mas não é possível fazer o mesmo com as
senhas. Se você quiser exportar as senhas vai ter que
quebrá-las com algum password cracker :) Na verdade
não é necessário ter a senha no passwd, apenas
o login, ID e home.
Para rodar o SAMBA e ele autenticar os usuários,
não é preciso ter a senha no passwd do Unix, apenas
o login, ID e home se você quiser exportá-los.
Vão ser utilizadas as senhas do smbpasswd.
Luciano Linhares
Martins
criou um script baseado no mksmbpasswd para converter as
senhas em formato smbpasswd para o passwd. Funciona bem e
pode ser modificado conforme a necessidade de cada um. É
um script bem simples e pode ser alterado de acordo com a sua
necessidade. Crie o arquivo mkpasswd.sh com o conteúdo
abaixo:
#!/bin/sh
awk 'BEGIN {FS=":"
printf("#\n# Unix password file.\n#\n")
}
{ printf( "%s:*:%s:103:%s:/home/%s:/bin/bash\n", $1, $2, $5, $1) }
'
Dê um chmod 700 no arquivo e execute da seguinte
maneira:
#cat /etc/smbpasswd | ./mkpasswd.sh > passwd-smb <enter>
Se o seu arquivo smbpasswd e o script mkpasswd.sh
estiverem em outro local, configure de acordo com a sua
necessidade. Após isso, é gerado um arquivo chamado
passwd-smb com os logins, id's, home, etc no formato do
passwd do seu sistema.
Normalmente, os ID's do smbpasswd vão começar a
partir de 1000 e você não vai ter problemas para
junta-lo com o seu passwd do Unix sem nenhum conflito. Eu
recomendo que você confira antes de juntar as bases.
Procure por logins com o mesmo ID, mesmo username e username
com espaços.
Se você utiliza shadow é importante
desabilitá-lo antes de juntar os arquivos. Desabilite o
shadow através do comando pwunconv. Em seguida para
passar o arquivo passwd-smb para o passwd do sistema entre no
diretório onde esta o arquivo passwd-smb que você
gerou. e digite:
#cat passwd-smb >> /etc/passwd <enter>
Se você utiliza o shadow, pode reativá-lo agora
através do comando pwconv. Reinicie o Linux para que as
alterações entrem em vigor.