Servidor Samba
Servidor Samba
O Samba é um servidor de arquivos construído originalmente para a integração entre máquinas Linux e Windows.
O Samba implementa suporte para compartilhamento de recursos em redes Windows, podendo exercer o papel de servidor de arquivos, servidor de impressão, servidor WINS (Windows Internet Name Server), Controlador Primário de Domínio (permitindo implantar uma rede compatível com Windows Server) e outros.
Além de permitir a integração com Windows, o Samba tem sido amplamente utilizado para compartilhamento de recursos em ambientes Linux, substituindo outros sistemas de compartilhamento de arquivos Unix, como o NFS (Network File System).
Instalação e configuração do Samba
O Samba é uma aplicação cliente servidor. O lado servidor implementa o compartilhamento de recursos disponíveis na máquina servidora. O lado cliente permite acessar os compartilhamentos.
O cliente Samba é instalado com o comando:
sudo apt install smbclient
O Servidor Samba é instalado com o comando:
sudo apt-get install samba samba-common
Para remover o Servidor Samba usa-se o comando:
sudo apt-get [remove|purge] samba samba-common
- A opção purge remove também os arquivos de configuração.
O principal arquivo de configuração do Samba é o /etc/samba/smb.conf, cuja referência completa pode ser acessada nas páginas man do Ubuntu:
man smb.conf
- Antes de editar o arquivo de configuração, faça uma cópia backup do arquivo original para recuperar as configurações originais, caso necesário:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
O arquivo de configuração consiste em seções e parâmetros:
- Cada seção inicia com o nome da seção entre colchetes e termina quando inicia a próxima seção, por exemplo:
[global] ...
- Os parâmetros são do tipo
nome = valor
A seção [global] contém itens de configuração que se aplicam ao servidor Samba como um todo.
Cada uma das demais seções refere-se a um compartilhamento de recursos, como arquivos ou impressoras.
A seção [home] configura os diretórios pessoais dos usuários para ser acessados via rede no servidor Samba.
Compartilhamento de arquivos sem solicitar senha
O Samba pode ser configurado como servidor de arquivos simples para compartilhar arquivos entre computadores Ubuntu e Windows sem solicitar uma senha.
Criação de compartilhamento sem senha
Para criar um compartilhamento de arquivos sem necessidade de senha para acesso, confige os seguintes itens:
[global] workgroup = TADS #Define um grupo de trabalho para os compartilhamentos ... [publico] comment = Compartilhamento do Servidor de Arquivos Ubuntu path = /srv/samba/publico browsable = yes guest ok = yes read only = no create mask = 0755
Em seguida, crie o diretório a ser compartilhado e ajuste as permissões para que todos tenham acesso:
sudo mkdir -p /srv/samba/publico sudo chown nobody:nogroup /srv/samba/publico/ sudo chmod -R 755 /srv/samba/publico/
Reinicie o Samba e teste o compartilhamento.
- Observações
- Observei que no Ubuntu Server as modificações no arquivo /etc/samba/smb.conf somente tem efeito com o reboot do servidor;
- Se utilizar o Nautilus para teste o mesmo deve ser reiniciado após modificações no Samba.
- Quando se ativa compartilhamento via Nautilus o mesmo instala o Samba, entretanto, não modifica o arquivo de configuração /etc/samba/smb.conf, mas sim inclui configurações no diretório:
- /var/lib/samba/usershares
Segurança no compartilhamento de arquivos
Na seção [Global] do arquivo smb.conf, o parâmetro server role define como o Samba vai operar. A opção básica é funcionar como standalone server, entretanto, o Samba pode ser configurado para funcionar como Controlador Primário de Domínio em redes Windows, além de outros papéis.
No modo standalone server a segurança em um compartilhamento é ativada alterando o parâmetro guest ok para no. Neste caso o acesso ao compartilhamento requer que os clientes forneçam usuário e senha para conectar aos compartilhamentos.
- Contas de usuário e senha
- As contas de usuário do Samba são separadas das contas do sistema.
- Até a versão Ubuntu 14.04 pacote libpam-smbpass sincronizava os usuários e senhas do sistema com o banco de dados de usuários do Samba a partir da instalação do pacote:
sudo apt-get install libpam-smbpass
- As senhas para os usuários do Samba também podem ser cadastradas manualmente com o comando:
sudo smbpasswd -a usuario
- Observações:
- O pacote libpam-smbpass sincroniza as senhas somente após o usuário efetuar o primeiro login no sistema;
- O cadastro manual das senhas com o comando smbpasswd tem efeito imediato.
Criação de compartilhamento com segurança
Criar um compartilhamento de arquivos com segurança, configurando os seguintes itens:
[grupo] comment = Compartilhamento do Servidor de Arquivos Ubuntu path = /srv/samba/grupo browsable = yes guest ok = no read only = no create mask = 0755
Em seguida, crie o diretório a ser compartilhado e ajuste as permissões para que todos tenham acesso:
sudo mkdir -p /srv/samba/grupo sudo chmod -R 755 /srv/samba/grupo/
Reinicie o Samba e teste o compartilhamento.
Compartilhamento do diretório home
A seção [home] configura os diretórios pessoais dos usuários para ser acessados via rede no servidor Samba.
Para compartilhar diretório home deve-se configurar os seguintes itens:
[homes] comment = Home Directories browseable = yes read only = no create mask = 0700 directory mask = 0700 valid users = %S
Esta é uma configuração padrão descomentada no arquivo smb.conf original. As opções create mask = 0700 e directory mask = 0700 fazem com que todos os arquivos e pastas criados pelo usuário dentro do home sejam acessíveis apenas por ele mesmo. A opção browseable = no faz com que cada usuário possa ver apenas seu próprio diretório, o que é reforçado pela opção valid users = %S, que diz explicitamente que apenas o próprio usuário deve ter acesso à sua pasta home [1].
O acesso ao servidor é dado pelo caminho \\server\username.
Reinicie o Samba e teste o compartilhamento.
Referências
- ↑ MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.
--Evandro.cantu (discussão) 10h47min de 17 de fevereiro de 2016 (BRST)