Há um tempo, testei o compartilhamento
Samba nos sistemas Debian, Ubuntu, CentOS e Fedora e me deparei num pequeno problema...
As distros não resolviam nomes, ou seja, abrindo o nautilus e clicando em "redes", eu conseguia achar e acessar o compartilhamento local, mas não de outras máquinas.
Simplesmente não acessavam, mas todas as outras máquinas "Windows" achavam a distro configurada e conseguiam acesso.
Resumindo, todas as outras máquinas tinham acesso para a distro mas a distro não tinha acesso a outras máquinas na rede.
Após MUITO tempo, achei como solucionar este pequeno problema.
Infelizmente não tem como dar créditos, pois achei a solução em sites americanos e foram tantos sites vasculhados que nem sei mais em qual deles achei a solução.
É simples, vamos lá, desde a instalação.
Como super usuário, instale os pacotes samba e winbind.
Sistema Debian/Ubuntu:
# apt-get install samba libpam-smbpass libnss-winbind libpam-winbind winbind
Sistema Red Hat/CentOS:
# yum -y install samba samba-client samba-common cifs-utils
# chkconfig smb on ; chkconfig nmb on
# service smb restart ; service nmb restart
# iptables -A INPUT -p udp --dport 137 -j ACCEPT
# iptables -A INPUT -p udp --dport 138 -j ACCEPT
# iptables -A INPUT -p tcp --dport 139 -j ACCEPT
# iptables -A INPUT -p tcp --dport 445 -j ACCEPT
# service iptables save
Solução para resolver nomes:
A instalação irá criar um arquivo com uma configuração padrão de compartilhamento (
/etc/samba/smb.conf ), edite e modifique à seu modo. Mas deixe 2 opções habilitadas como padrão, se não existir ou estiver desabilitado no arquivo:
wins support = yes
name resolve order = wins lmhosts hosts bcast
Agora edite o arquivo
/etc/nsswitch.conf e onde tiver esta linha:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Adicione "wins", deixando desta forma:
hosts: files mdns4_minimal [NOTFOUND=return] wins dns mdns4
Reinicie o computador ou apenas o Samba e a rede.
Com isto, o suporte para resolver nomes funcionará exatamente como se deve.
Para adicionar o seu, ou qualquer outro usuário ao samba, basta fazer o comando:
# smbpasswd -a USUARIO
Digite a senha a usar no samba.
Agora, qualquer outro computador ao acessar sua pasta compartilhada, terá que digitar o nome do usuário predefinido no seu comando e a senha escolhida.
Aqui está meu pastebin com minha configuração do smb.conf que está funcionando perfeitamente:
É bom não esquecer de dar as devidas permissões na pasta compartilhada.
Uma pequena dica para quem usa o Ubuntu e se depara com uma pequena mensagem de erro durante o boot:
"Starting SMB/CIFS File and Active Directory Server [fail]"
Existem dois scripts de inicialização instalados pelo pacote samba que fazem a mesma coisa.
Um (em /etc/init.d) verifica se o samba é configurado como um controlador de domínio. O outro (em /etc/init) apenas tenta iniciá-lo, não importa o quê. Para resolver a mensagem no boot (já que não vai usar SAMBA como controlador de domínio), faça o comando:
echo "manual" | sudo tee -a /etc/init/samba-ad-dc.override
Isto irá criar o arquivo com o conteúdo "manual" e desta forma não aparecerá a mensagem de erro durante o boot...