Luciano Linhares Martins (lmartins@matrix.com.br)
O Windows NT utiliza um sistema de senhas com um método de criptografia diferentes dos sistemas Unix, alem disso as senhas ficam armazenadas em um arquivo binário chamado "sam" que normalmente fica no diretório system32\config - esse arquivo fica inacessível para cópia e manuseio quando o sistema esta rodando. Já nos sistemas Unix, geralmente o arquivo de senhas fica no diretório /etc com o nome de passwd e quando se utiliza o shadow, /etc/shadow, ambos em modo texto, o que facilita a seu manuseio e exportação para outros formatos.
Devido a esse sistema diferente de criptografia e armazenagem de senha, a passagem de contas do Windows NT para os sistema Unix não e tão simples e fácil, precisando utilizar alguns utilitários.
Conecte-se ao ftp do Samba e baixe o utilitário chamado pwdump.exe, no seguinte endereço:
ftp://ftp.samba.org/pub/samba/pwdump/pwdump.exe
Em seguida, logue no Windows NT com a conta Administrator (eu tentei fazer o teste com contas com o grupo do Administrador/Domain Admin e não funcionou, dizia para logar com o usurário Administrator).
Em seguida, abra um Command Prompt no diretório que você colocou o pwdump.
Rode o comando pwdump da seguinte maneira:
pwdump > smbpasswd
Com isso, você vai gerar um arquivo (smbpasswd) com os logins e senhas do Windows NT no formato do password cryptografado do Samba.
Transfira o arquivo smbpasswd para o seu servidor Unix.
Copie o arquivo smbpasswd para o diretório /etc e defina as permissões para 600:
cp smbpasswd /etc
chmod 600 /etc/smbpasswd
O samba requer que os seus Usuários tenham o mesmo ID no smbpasswd e no password do Unix, para poder autentica-los, exportar diretórios ETC.
A partir do smbpasswd você pode exportar os logins de usuários, ID, etc, porem sem senhas, para um arquivo no formato do passwd do Unix facilmente. Se você quiser exportar as senhas vai ter que quebra-las com algum password cracker e em seguida inseri-las no passwd. 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 exporta-los. Vão ser utilizadas as senhas do smbpasswd.
Eu criei um script, baseado no mksmbpasswd para converter as senhas do formato smbpasswd para passwd. Deve satisfazer as suas necessidades, é um script bem simples e pode ser alterado de acordo com a sua necessidade.
Você pode baixa-lo em:
ftp://ftp.labgrad.ufsc.br/pub/linux/samba/tools/mkpasswd.sh
Em seguida execute o seguinte comando:
cat /etc/smbpasswd | ./mkpasswd.sh > passwd-smb
Se o seu arquivo smbpasswd e o script mkpasswd.sh estiverem em outro local, configure de acordo com a sua necessidade.
Apos isso, você vai gerar 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, eu recomendo desabilitar esse recurso antes de juntar os arquivos, porque esse sistema de junção de senhas não funciona com o shadow.
Você desabilita o shadow através do comando:
pwunconv
Em seguida para passar o arquivo passwd-smb para o passwd do sistema faca o seguinte:
Entre no diretório onde esta o arquivo passwd-smb que você gerou.
cat passwd-smb >> /etc/passwd
Se você utiliza o shadow, pode reativa-lo através do comando:
pwconv
Caso você tenha algum conflito ou erro no passwd quando for rodar o shadow ele vai ficar em loop consumindo os recursos de processamento do seu micro.
Pronto, a parte inicial de criar o smbpasswd com as senhas do NT e passar as informações dos usuarios para o seu passwd do Unix terminou.
Agora vem a segunda parte a configuração do samba.
Existem diversos tutoriais On-line explicando a configuração do Samba, eu vou tentar explicar aqui de forma simples uma configuração básica para seu sistema, comentando as linhas do arquivo de configuração do samba (smb.conf)
Abaixo vão as opções globais do smb.conf:
workgroup = SAMBA
Define o seu grupo de Trabalho/Domínio, no caso "SAMBA"
netbios name = Servidor
Define o nome que o seu computador vai ter na rede netbios, caso você queria determinar um nome diferente do nome atual da maquina.
server string = Servidor Samba Server
Define qual frase vai aparecer no comentário da rede.
encrypt passwords = Yes
Define se o samba vai usar passwords encryptados ou não. Nesse caso, deve estar habilitada essa opção pois vamos utilizar o arquivo de senhas cryptografadas que foram exportadas do Windows NT.
smb passwd file = /etc/smbpasswd
Aponta o arquivo onde vão estar as senhas cryptografadas.
log file = /usr/local/samba/var/log.%m
Define o diretório e o nome dos arquivos de log que vão ser gerados. No exemplo acima, o log nome do arquivo de log gerado vai ser "samba.micro_que_acessou". Se o micro chamado "win95" acessou, o log vai ser samba.win95
max log size = 50
Define o tamanho máximo do log do samba em kilobytes. Quando for atingido esse valor, ele renomeia o log atual adicional a extensão .old
load printers = No
Define se você deseja carregar as impressoras ou não, caso você tenha alguma impressora conecta do sistema e queira compartilha-la.
domain logons = Yes
Com essa opção habilitada o samba vai servir de autenticador de domínios para a sua rede de Windows 95/98.
os level = 33
Essa opção define o nível do Samba na Rede. Caso o Samba seja o controlador da rede, esse numero deve ser um valor relativamente alto. Em redes com WindowsNT como Master, é aconselhável deixar um valor baixo para não entrar em conflito com o WindowsNT. O valor máximo é 255.
preferred master = True
Define se o nmdb vai ser o Brownser Master preferido do grupo de trabalho. Quando for inicializado ele vai forcar a sua eleição a Master.
domain master = True
Essa opção deve estar habilitada para o samba ser o controlador do domínio da sua rede.
Opcionais
unix password sync = True
Caso você deseje uma sincronia dos passwords da rede do samba com a dos passwords do seu sistema deve habilitar essa opção que esta relacionada com o a o opção "passwd program" e "passwd chat"
passwd program = /sbin/passwd %u
Define qual programa para alterar a senha você vai utilizar e os parametros. Essa opção é executada como root.
passwd chat = "*Enter OLD password*" %o\n "*Enter NEW password*" %n\n
"*Reenter NEW password*" %n\n "*Password changed*"
Define a sequência de como vai ser a conversação entre o client e o servidor para a mudança da senha.
Com essas opções a parte da configuração global do seu samba ficaria assim:
[global]
workgroup = SAMBA
netbios name = Servidor
server string = Servidor Samba Server
encrypt passwords = Yes
smb passwd file = /etc/smbpasswd
unix password sync = True
passwd program = /sbin/passwd %u
passwd chat = "*Enter OLD password*" %o\n "*Enter NEW password*" %n\n "*Reenter NEW password*" %n\n "*Password changed*"
log file = /usr/local/samba/var/log.%m
max log size = 50
load printers = No
domain logons = Yes
os level = 33
preferred master = True
domain master = True
O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.