O que é o Samba
Para fornecer impressora e compartilhamento de arquivos, o Microsoft Windows usa um recurso conhecido como SMB (Server Message Block). Este mesmo recurso é às vezes conhecido como NetBIOS ou LanManager. Graças a Andrew Tridgell e outros, os sistemas Linux fornecem suporte para SMB através de um pacote conhecido como Samba. Como SMB, Samba permite a você:
- Partilhar impressoras e arquivos entre Microsoft Windows, OS/2, Netware e sistemas Unix
- Estabelecer um servidor de nomes simples para identificar sistemas em sua rede local
- Backup de arquivos de PC para um sistema Linux e restaurá-los
- Administer usuários e senhas
Samba tem provado sua confiabilidade e alto desempenho em muitas organizações.Samba software suite on Enterprise Linux é uma coleção de programas que implementa o protocolo Server Message Block (normalmente abreviado como SMB) para sistemas UNIX.
Installing Samba
In Enterprise Linux system, instale abaixo os pacotes para começar a usar o Samba. Você pode baixar/instalar estes pacotes do servidor yum usando o comando “yum install”.
samba #### basic Samba packagessamba-client #### samba client
Para instalar estes pacotes :
# yum install samba# yum install samba-client
Se você estiver usando uma configuração de diretório ativa, instale também os pacotes abaixo.
# yum install samba-winbind# yum install samba-winbind-clients# yum install samba-winbind-krb5-locator
Below é a lista de pacotes que serão instalados depois de ter instalado os pacotes acima.
samba-libssamba-winbind-krb5-locatorsamba-winbind-modulessamba-vfs-glusterfssamba-winbindsamba-clientsamba-commonsamba-winbind-clientssamba
A configuração do Samba geralmente reside em /etc/samba/smb.conf que contém todos os parâmetros de configuração relacionados com o samba. Siga os passos dados abaixo para configurar um Samba Share.
1. Para que o compartilhamento seja acessível a um usuário em particular, devemos primeiro criar um usuário (john) no servidor linux onde o compartilhamento também reside.
# useradd john
# passwd johnChanging password for user john.New password: Retype new password: passwd: all authentication tokens updated successfully.
2. Para adicionar activar o utilizador Samba e definir a password, use o comando “smbpasswd” com a opção -a.
# smbpasswd -a john
3. Crie o directório para partilhar ou pode usar um directório existente. Também defina permissões completas no diretório.
# mkdir -p /path/to/share# chmod -R 777 /path/to/share
4. Em seguida, defina os contextos do SElinux no compartilhamento. Verifique se você pode criar um arquivo no compartilhamento.
# chcon -R -t samba_share_t /path/to/share# cd /path/to/share# echo test > testfile.txt
5. Edite o arquivo /etc/samba/smb.conf e adicione as configurações de compartilhamento.
# vi /etc/samba/smb.conf path = /path/to/share comment = samba share for john public = yes writable = yes create mask = 0777 browseable = yes
Restornar o serviço samba para que as configurações acima tenham efeito.
# service smb restart
Solução de problemas
Para descobrir o problema com um compartilhamento samba, você pode tentar desativar o serviço iptables e desligar o SELinux. Certifique-se de ativá-los novamente após resolver o confilct.
# service iptables stop# setenforce 0
Verificar o parâmetro samba usando o testparm
Para verificar se os parâmetros estão corretos no arquivo smb.conf ou para depurar problemas de configuração, use o comando testparm.
logs
Para problemas de depuração com o Samba em geral, os arquivos log log.smbd e log.nmbd sob o diretório /var/log/samba são inestimáveis. O parâmetro nível de log na seção global do arquivo smb.conf determina a quantidade de informação detalhada que o Samba escreve nos arquivos de log, sendo o nível 0 o mais geral e 10 o mais detalhado. Cada nível de log contém as mensagens desse nível, além das mensagens de log abaixo dele. Por exemplo, um nível de registo de 5 contém mensagens do nível 5, mais aquelas dos níveis 0 até 4.
# vi /etc/samba/smb.conf# this tells Samba to use a separate log file for each machine# that connectslog file = /var/log/samba/%m.logdebuglevel = 4