Configurando o Samba para compartilhamento por autenticação de usuários
Aqui trago a descrição completa de como usar a autenticação de usuários com compartilhamentos gerênciados com o Samba.
Compartilhando arquivos
Primeiro você deve alterar o arquivo de configuração smb.conf.
Digite:
# mcedit /etc/smb.conf
ou
# mcedit /usr/local/samba/smb.conf
Localize e edite as seguintes linhas:
Samba security = SHARE
para
Samba security = USER
Com isso você está definindo que o Samba trabalhará somente com usuários autorizados e não com compartilhamento sem senha.
Em primeiro lugar, cada usuário NetBIOS deve corresponder a um usuário UNIX, porque deste último é que dependem as permissões de acesso. Então, o primeiro passo é cadastrar os usuários Unix com o comando adduser <nome do usuário>.
Se sua rede autentica usuários sem criptografia (opção 'encrypted' no smb.conf) e os nomes dos usuários NetBIOS correspondem exatamente aos usuários Unix em nome e número, basta cadastrar as senhas com passwd e nada mais precisa ser feito.
Se sua rede usa senhas encriptadas, você precisa executar os seguintes passos adicionais:
Adicionar o usuário em /etc/smbpasswd, com o comando smbadduser.
Exemplos:
# smbadduser fulano:beltrano
# smbadduser fernandoss:fernandoss
Neste ponto, você também cadastrar os usuários com um nome de NetBIOS e outro nome para Unix. Cadastre também uma senha encriptada usando o seguinte comando:
# smbpasswd
Este comando vai gerar a senha do usuário especificado como o comando passwd. Só que vai usar senha no formato do arquivo /etc/smbpasswd.
Se você tem vários usuários NetBIOS que devem ser mapeados como um único usuário UNIX, você deve editar o arquivo /etc/smbusers.
Esse arquivo tem diversas linhas no formato "= ... ". Veja alguns exemplos:
root = administrator
epx = fernandoss fernandoss ferss
Crie a relação entre usuários UNIX e NetBIOS no mesmo padrão. Depois, certifique-se de que o arquivo /etc/smb.conf esteja com a seguinte diretiva implementada e descomentada:
username map = /etc/smbusers
AFAIK também será necessário reiniciar o servidor SAMBA após fazer esta última alteração (a maioria das alterações em /etc/smb.conf é assumida pelo servidor sem necessidade de reiniciá-lo.):
# cds
# ./smb restart
Agora vamos utilizar o smbclient:
Liste todos os compartilhamento que estão acessíveis. Para você saber quais diretórios estão compartilhados digite:
# smbclient -L
Password: (Em branco)
ou
# smbclient -L -N
Se quiser acessar o compartilhamento digite:
# smbclient ///nome do serviço
Para definir detalhes adicionais use as opções:
# smbmount ///
/
Você pode também inserir depois do ponto de montagem a opção '-o', que poderá usar as seguintes opções:
# mcedit /etc/smb.conf
ou
# mcedit /usr/local/samba/smb.conf
Localize e edite as seguintes linhas:
Samba security = SHARE
para
Samba security = USER
Com isso você está definindo que o Samba trabalhará somente com usuários autorizados e não com compartilhamento sem senha.
Cadastrando os usuários
Em primeiro lugar, cada usuário NetBIOS deve corresponder a um usuário UNIX, porque deste último é que dependem as permissões de acesso. Então, o primeiro passo é cadastrar os usuários Unix com o comando adduser <nome do usuário>.
Se sua rede autentica usuários sem criptografia (opção 'encrypted' no smb.conf) e os nomes dos usuários NetBIOS correspondem exatamente aos usuários Unix em nome e número, basta cadastrar as senhas com passwd e nada mais precisa ser feito.
Se sua rede usa senhas encriptadas, você precisa executar os seguintes passos adicionais:
Adicionar o usuário em /etc/smbpasswd, com o comando smbadduser.
Exemplos:
# smbadduser fulano:beltrano
# smbadduser fernandoss:fernandoss
Neste ponto, você também cadastrar os usuários com um nome de NetBIOS e outro nome para Unix. Cadastre também uma senha encriptada usando o seguinte comando:
# smbpasswd
Este comando vai gerar a senha do usuário especificado como o comando passwd. Só que vai usar senha no formato do arquivo /etc/smbpasswd.
Se você tem vários usuários NetBIOS que devem ser mapeados como um único usuário UNIX, você deve editar o arquivo /etc/smbusers.
Esse arquivo tem diversas linhas no formato "= ... ". Veja alguns exemplos:
root = administrator
epx = fernandoss fernandoss ferss
Crie a relação entre usuários UNIX e NetBIOS no mesmo padrão. Depois, certifique-se de que o arquivo /etc/smb.conf esteja com a seguinte diretiva implementada e descomentada:
username map = /etc/smbusers
AFAIK também será necessário reiniciar o servidor SAMBA após fazer esta última alteração (a maioria das alterações em /etc/smb.conf é assumida pelo servidor sem necessidade de reiniciá-lo.):
# cds
# ./smb restart
Agora vamos utilizar o smbclient:
Liste todos os compartilhamento que estão acessíveis. Para você saber quais diretórios estão compartilhados digite:
# smbclient -L
Password: (Em branco)
ou
# smbclient -L -N
Se quiser acessar o compartilhamento digite:
# smbclient ///nome do serviço
Para definir detalhes adicionais use as opções:
- -n
- -p
- -D
- -N (sem senha)
- -R
- -d
- -l
- -I
- -U
# smbmount ///
/
Você pode também inserir depois do ponto de montagem a opção '-o', que poderá usar as seguintes opções:
username=
password=
netbiosname=
port=
debug=
ip=
workgroup=
guest (sem senha)
ro (só poderá fazer leitura)
rw (poderá ler e escrever)
password=
netbiosname=
port=
debug=
ip=
workgroup=
guest (sem senha)
ro (só poderá fazer leitura)
rw (poderá ler e escrever)
Até mais pessoal.
Fernando da Silva Santos
Fernandossantos@hotmail.com
Se a rede possuir algum terminal trabalhando com windows 95, a opção do samba "encrypt passwords = yes" deve ser alterada pra "= no", isso devido a esse sistema não trabalhar com senhas cryptografadas.
Mais um dica vai em relação ao cadastro de usuários, para isso não se tornar uma tarde "duplicada" devido a ter q primeiramente cadastrar um usuário no Linux e depois associa-lo no samba(smbadduser joao:joao), vamos descomentar as seguintes opções:
unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
Isso irá fazer com que automaticamente quando um usuário for cadastrado no Linux, ele seja associado ao samba! E tb permitirá, no caso de um servidor de dominio, que as senhas sejam alteradas pelo próprio windows.
Um grande abraço,
MrLuk