Servidor Samba

De Wiki Cursos IFPR Foz
Ir para navegação Ir 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 install smbclient

O Servidor Samba é instalado com o comando:

sudo apt install samba 

Para remover o Servidor Samba usa-se o comando:

sudo apt [remove|purge] samba 
A opção purge remove também os arquivos de configuração.

Configuração do Samba

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

Na configuração default o Samba tem um grande número de comentários que documentam como as configurações principais podem ser realizadas.

Dica
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-original
Formato do arquivo de configuração

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, configure os seguintes campos no arquivo smb.conf:

[global]
  workgroup = TADS
  #Define um grupo de trabalho para os compartilhamentos
  ...

Inclua no final do arquivo de configuração o diretório a ser compartilhado, com as seguintes informações:

[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 com o comando:

sudo systemctl restart smbd.service nmbd.service

Teste o compartilhamento usando o Gerenciador de Arquivos Nautilus de uma máquina Linux ou Windows.

Observações
  • 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-winbind 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 install libpam-winbind
  • As senhas para os usuários do Samba devem ser cadastradas manualmente com o comando:
sudo smbpasswd -a usuario
Observações:
  • O pacote libpam-winbind 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 compartilhamentos de arquivos com segurança, para grupos de usuários, configurando os seguintes itens:

  [grupo_professores]
   comment = Compartilhamento do Servidor de Arquivos Ubuntu
   path = /srv/samba/grupo_professores
   browsable = yes
   guest ok = no
   read only = no
   create mask = 0775
  [grupo_alunos]
   comment = Compartilhamento do Servidor de Arquivos Ubuntu
   path = /srv/samba/grupo_alunos
   browsable = yes
   guest ok = no
   read only = no
   create mask = 0775

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_professores
sudo mkdir -p /srv/samba/grupo_alunos
sudo chgrp professores grupo_professores
sudo chgrp alunos grupo_alunos
sudo chmod -R 775 /srv/samba/grupo_professores/
sudo chmod -R 775 /srv/samba/grupo_alunos/

Reinicie o Samba com o comando:

sudo systemctl restart smbd.service nmbd.service

Teste o compartilhamento usando o Gerenciador de Arquivos Nautilus de uma máquina Linux ou Windows. Para tal, antes configure a senha do samba para os usuários que utilizaram os diretórios compartilhados.

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

  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)