Servidor Samba

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar

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-get 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.
  • O pacote libpam-smbpass sincroniza 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ção: Somente consegui acesso ao servidor Samba com o cadastro manual das senhas com o comando smbpasswd.

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 = 0777

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 chown nobody:nogroup /srv/samba/grupo/
sudo chmod -R 777 /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

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

  1. 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)