Servidor Samba: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(67 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 6: Linha 6:
-->
-->


O '''[https://help.ubuntu.com/lts/serverguide/samba-fileserver.html Samba]''' é um '''servidor de arquivos''' construído originalmente para a integração entre máquinas '''Linux''' e '''Windows'''.  
O '''[https://help.ubuntu.com/lts/serverguide/samba.html Samba]''' é um '''servidor de arquivos''' construído originalmente para a integração entre máquinas '''Linux''' e '''Windows'''.  


O '''Samba''' implementa suporte para uma rede '''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 <ref name=VALLE>VALLE, O. T. Adminstração de Redes com Linux: Fundamentos e práticas, IFSC, Florianópolis, 2010.</ref>.
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'').
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'').
Linha 14: Linha 14:
==Instalação e configuração do Samba==
==Instalação e configuração do Samba==


O Samba é instalado com o comando:
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.
sudo apt-get install samba


A configuração do Samba é realizada a partir do arquivo '''/etc/samba/smb.conf'''.
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 <ref name=MORIMOTO>MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.</ref>.
 
O acesso ao servidor é dado pelo caminho '''\\server\username'''.
 
Reinicie o Samba e teste o compartilhamento.
 
==Tarefa==
Realizar a instalação e configuração do Samba para as seguintes situações de compartilhamento de arquivos e diretórios:
*Compartilhamento de um diretório ('''publico''') para acesso sem senha.
*Compartilhamento de diretórios para grupos de usuários ('''grupo_professores''' e '''grupo_alunos''') para acesso com senha.
Testar o acesso aos diretórios compartilhados e imprimir as saídas para demonstrar os acessos realizados.


==Referências==
==Referências==

Edição atual tal como às 17h21min de 24 de maio de 2021

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.

Tarefa

Realizar a instalação e configuração do Samba para as seguintes situações de compartilhamento de arquivos e diretórios:

  • Compartilhamento de um diretório (publico) para acesso sem senha.
  • Compartilhamento de diretórios para grupos de usuários (grupo_professores e grupo_alunos) para acesso com senha.

Testar o acesso aos diretórios compartilhados e imprimir as saídas para demonstrar os acessos realizados.

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)