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

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


O '''cliente Samba''' é instalado com o comando:
O '''cliente Samba''' é instalado com o comando:
  sudo apt-get install smbclient
  sudo apt install smbclient


O '''Servidor Samba''' é instalado com o comando:
O '''Servidor Samba''' é instalado com o comando:
  sudo apt-get install samba samba-common
  sudo apt install samba  


Para remover o '''Servidor Samba''' usa-se o comando:
Para remover o '''Servidor Samba''' usa-se o comando:
  sudo apt-get [remove|purge] samba samba-common
  sudo apt [remove|purge] samba  
:A opção purge remove também os arquivos de configuração.
: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:
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
  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.


: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:
;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.bak
  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''':
O arquivo de configuração consiste em '''seções''' e '''parâmetros''':
Linha 50: Linha 54:


===Criação de compartilhamento sem senha===
===Criação de compartilhamento sem senha===
Para criar um compartilhamento de arquivos sem necessidade de senha para acesso, confige os seguintes itens:
Para criar um compartilhamento de arquivos sem necessidade de senha para acesso, configure os seguintes campos no arquivo '''smb.conf''':
  [global]
  [global]
  workgroup = TADS
  workgroup = TADS
  #Define um grupo de trabalho para os compartilhamentos
  #Define um grupo de trabalho para os compartilhamentos
  ...
  ...
  [publico]
 
    comment = Compartilhamento do Servidor de Arquivos Ubuntu
Inclua no final do arquivo de configuração o diretório a ser compartilhado, com as seguintes informações:
    path = /srv/samba/publico
[publico]
    browsable = yes
  comment = Compartilhamento do Servidor de Arquivos Ubuntu
    guest ok = yes
  path = /srv/samba/publico
    read only = no
  browsable = yes
    create mask = 0755
  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:  
Em seguida, crie o diretório a ser compartilhado e ajuste as permissões para que todos tenham acesso:  
Linha 68: Linha 74:
  sudo chmod -R 755 /srv/samba/publico/
  sudo chmod -R 755 /srv/samba/publico/


Reinicie o Samba e teste o compartilhamento.
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:
;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:
*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'''
:'''/var/lib/samba/usershares'''


==Segurança no compartilhamento de arquivos==
==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.
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.  
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.
;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:
*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-get install libpam-smbpass
  sudo apt install libpam-winbind
*As senhas para os usuários do Samba também podem ser cadastradas manualmente com o comando:
*As senhas para os usuários do Samba devem ser cadastradas manualmente com o comando:
  sudo smbpasswd -a usuario
  sudo smbpasswd -a usuario
:'''Observação''': Somente consegui acesso ao servidor Samba com o cadastro manual das senhas com o comando '''smbpasswd'''.
:'''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===
===Criação de compartilhamento com segurança===
Criar um compartilhamento de arquivos com segurança, configurando os seguintes itens:
Criar '''compartilhamentos''' de arquivos com segurança, para '''grupos de usuários''', configurando os seguintes itens:
   [grupo]
   [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
     comment = Compartilhamento do Servidor de Arquivos Ubuntu
     path = /srv/samba/grupo
     path = /srv/samba/grupo_alunos
     browsable = yes
     browsable = yes
     guest ok = no
     guest ok = no
     read only = no
     read only = no
     create mask = 0777
     create mask = 0775


Em seguida, crie o diretório a ser compartilhado e ajuste as permissões para que todos tenham acesso:  
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 mkdir -p /srv/samba/grupo_professores
  sudo chown nobody:nogroup /srv/samba/grupo/
  sudo mkdir -p /srv/samba/grupo_alunos
  sudo chmod -R 777 /srv/samba/grupo/
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


Reinicie o Samba e teste o compartilhamento.
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==
==Compartilhamento do diretório home==
Linha 119: Linha 142:
   valid users = %S
   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.
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'''.  
O acesso ao servidor é dado pelo caminho '''\\server\username'''.  


Reinicie o Samba e teste o compartilhamento.
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)