1. 1 Módulo 3 – SAMBA
Carlos Melo
Este é um exemplo de arquivo de configuração do Samba para um controlador de
domínio. Ele não contém as configurações para compartilhamento de impressoras,
lixeira e outras opções que você pode adicionar (juntamente com os
compartilhamentos desejados) depois de testar a configuração básica:
[global]
workgroup = Dominio
netbios name = SENAI
server string = Samba PDC
domain master = yes
domain logons = yes
logon script = netlogon.bat
security = user
encrypt passwords = yes
enable privileges = yes
passdb backend = tdbsam
preferred master = yes
local master = yes
os level = 100
wins support = yes
[netlogon]
comment = Servico de Logon
path = /var/samba/netlogon
read only = yes
browseable = no
[homes]
valid users = %S
create mask = 0700
directory mask = 0700
browseable = no
Acostume-se a sempre rodar o comando "testparm" depois de fazer alterações no
arquivo, pois ele verifica a sintaxe e indica erros de configuração. Ao configurar o
Samba como PDC, ele deve exibir a mensagem: "Server role: ROLE_DOMAIN_PDC",
como em:
$ testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[netlogon]"
Processing section "[homes]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
2. 2 Módulo 3 – SAMBA
Carlos Melo
As linhas "preferred master = yes", "local master = yes" e "os level = 100" fazem com
que o servidor assuma também a função de master browser da rede. É comum que o
PDC acumule também a função de master browser, mas na verdade uma coisa não
tem relação com a outra. Você pode remover as três linhas e configurar outra máquina
para assumir a função de master browser se preferir.
Depois de configurar o arquivo, verifique se a conta root do sistema foi cadastrada no
Samba e se as senhas estão iguais. Caso necessário, use o comando "smbpasswd -a
root" para cadastrar o a conta de root no Samba. Aproveite para criar a pasta
"/var/samba/netlogon" e configurar corretamente as permissões:
# mkdir -p /var/samba/netlogon
# chmod 775 /var/samba/netlogon
Com o "775" estamos permitindo que, além do root, outros usuários que você
adicionar no grupo possam alterar o conteúdo da pasta. Isso pode ser útil caso existam
outros administradores de rede além de você.
Cadastre agora os usuários, com as senhas que eles utilizarão para fazer logon a partir
das máquinas Windows. Neste caso, não é preciso se preocupar em manter as senhas
em sincronismo entre o servidor e as estações. Na verdade, as contas que criamos aqui
não precisam sequer existir nas estações, pois o login será feito no servidor. Para
adicionar um usuário de teste "carlos", use os comandos:
# adduser carlos
# smbpasswd -a carlos
É importante criar também a pasta "profile.pds" dentro do diretório home do usuário,
onde o cliente Windows armazena as informações da sessão cada vez que o usuário
faz logon no domínio:
# mkdir /home/carlos/profile.pds
Ao rodar este comando como root, não se esqueça de ajustar as permissões da pasta,
de forma que o usuário seja o dono:
# chown -R carlos.carlos /home/carlos/profile.pds
Aproveite e crie a pasta "profile.pds" dentro do diretório /etc/skel, de forma que ela
seja criada automaticamente dentro do home dos usuários que criar daqui em diante:
# mkdir /etc/skel/profile.pds
Além das contas para cada usuário, é preciso cadastrar também uma conta
(bloqueada, e por isso sem senha), para cada máquina. Você deve usar aqui os
mesmos nomes usados na configuração de rede em cada cliente. Se a máquina se
3. 3 Módulo 3 – SAMBA
Carlos Melo
chama "cartago" por exemplo, é preciso criar um login de máquina com o mesmo
nome:
# useradd -d /dev/null -s /bin/false cartago$
# passwd -l cartago$
# smbpasswd -a -m cartago
Note que nos dois primeiros comandos é adicionado um "$" depois do nome, que
indica que estamos criando uma conta de máquina, que não tem diretório home (-d
/dev/null), não possui um shell válido (-s /bin/false) e está travada (passwd -l). Esta
conta é válida apenas no Samba, onde é cadastrada com a opção "-m" (machine). Estas
contas de máquina são chamadas de "trusted accounts" ou "trustee".
Lembre-se de que para usar este comando o arquivo "/etc/shells" deve conter a linha
"/bin/false". Em caso de erro ao adicionar a máquina, use o comando abaixo para
adicionar a linha e tente novamente (este comando só funciona se executado
diretamente usando o root, não funciona se executado usando o sudo):
# echo "/bin/false" >> /etc/shells
Se preferir, você pode adicionar as contas de máquina dentro de um grupo do sistema
("maquinas" ou "machines" por exemplo). Neste caso, crie o grupo usando o comando
"groupadd" e use o comando abaixo para criar as contas de máquina já incluindo-as no
grupo:
# useradd -g maquinas -d /dev/null -s /bin/false cartago$
Por último, é necessário criar o arquivo "/var/samba/netlogon/netlogon.bat", um
script que é lido e executado pelos clientes ao fazer logon. Você pode fazer muitas
coisas através dele, mas um exemplo de arquivo funcional é:
net use h: /HOME
net use x: senaiarquivos /yes
Este script faz com que a pasta home de cada usuário (compartilhada pelo Samba
através da seção "homes") seja automaticamente mapeada como a unidade "H:" no
cliente, o que pode ser bastante útil para backups, por exemplo. Naturalmente, cada
usuário tem acesso apenas a seu próprio home.
A segunda linha é um exemplo de como fazer com que determinados
compartilhamentos do servidor sejam mapeados no cliente. O "net use x:
senaiarquivos /yes" faz com que o compartilhamento "arquivos" (que precisaria ser
configurado no smb.conf) seja mapeado como o drive "X:" nos clientes. Lembre-se que
o "senai" dentro do netlogon.bat deve ser substituído pelo nome do seu servidor
Samba, configurado na opção "netbios name =" do smb.conf.