Instalação e configuração do Samba no Ubuntu Server

O presente artigo descreve passo a passo a configuração do Samba na distribuição Ubuntu Server, com autenticação de política de grupo.

[ Hits: 71.460 ]

Por: Marcelo Junio Nascimento de Carvalho em 04/01/2016 | Blog: https://sites.google.com/site/marcelondc/


Introdução



Todos os comandos apresentados neste tutorial foram testados na distribuição Ubuntu-server 14.04 LTS, Samba 4.1.6.

1) Efetuar a instalação do samba:

# apt-get install samba

Após efetuar a instalação, acesse o arquivo de configuração, normalmente localizado em /etc/samba/smb.conf. Utilize um editor de sua preferência para editá-lo, como vim ou nano. Antes de começar a editar efetue uma backup do arquivo original:

# cd /etc/samba
# cp smb.conf smb.conf.bkp


Na seção global defina as seguintes configurações:

[global]
##Identificação do servidor
      netbios name = NomeDoHost
      workgroup = Grupo

####### Authentication #######
     security = user
     map to guest = bad user

NOTA: a variável share utilizada para definição de autenticação em outras versões do samba não funciona na versão 4.1, agora utilizamos:

map to guest = bad user

Agora defina os diretórios:

#======================= Share Definitions =======================
[lixeira]
    path = /dados/lixeira
    browseable = yes
    writable = yes
    public = yes

[arquivos]
     comment = Arquivos temporarios
     path = /dados/arquivos
     guest ok = yes
     read only = on

[Financeiro]
     path = /dados/Financeiro
     comment = Pasta de arquivos financeiro.  
     writeable = yes
     valid users = @gfinanceiro
     force create mode = 0660
     force directory mode = 0770
     force group = gfinanceiro
     browseable = yes
     veto files = /*.mp3/*.wma/*.avi

[RecursosHumanos]
    
     path = /dados/RecursosHumanos
     comment = Pasta de arquivos RH.
     writeable = yes
     valid users = @grh
     force create mode = 0660
     force directory mode = 0770
     force group = grh
     browseable = yes
     veto files = /*.mp3/*.wma/*.avi

Mãos na massa! Tomemos um diretório como exemplo...

Crie um diretório em qualquer pasta, no meu caso criei o volume /dados, faça as adaptações de acordo com a sua necessidade.

Crie uma pasta em /dados/RecursosHumanos, logo depois crie um grupo no samba:

# groupadd NomeDoGrupo

Em seguida crie um usuário:

# adduser NomeDoUsuário

Depois ainda é necessário adicionar o usuário ao samba:

# smbpasswd -a NomeDoUsuário

Seguindo em frente, ainda é necessário vincular o usuário a grupo criado:

# gpasswd -a NomeDoUsuário NomeDoGrupo

Agora temos que alterar algumas configurações nas pastas de acordo com a nossa necessidade. Comece dando permissão na pasta:

# chmod 770 /dados/RecursosHumanos

Onde o primeiro "7" define permissão total ao dono da pasta, o segundo ao grupo dono da pasta, e o "0" na terceira posição define restrição total a outros usuários. Com o comando "ls -la" é possível visualizar as pastas, com os respectivos donos e grupos proprietários.

Se o procedimento descritos acima foram realizados corretamente, será possível acessar as pastas do servidor samba com autenticação de grupo.

Também é possível criar uma lixeira no samba, assim quando o usuário excluir algum arquivo, o que as vezes acaba acontecendo por acidente, o mesmo ficará armazenado numa pasta definida no servidor. Vejamos como fazer isso!

1) Crie uma pasta em qualquer lugar do servidor e dê permissão:

# mkdir /dados/lixeira
# chmod 777 /dados/lixeira


2) Agora coloque as configurações abaixo na sessão global do aquivo de configuração do samba:

##Configuração da lixeira
     vfs objects = recycle
     recycle:keeptree = yes
     recycle:versions = yes
     recycle:repository = /dados/lixeira/%U
     recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso
     recycle:exclude_dir = tmp, cache

3) Reinicie o samba e a lixeira já estará funcionado:

# /etc/init.d/samba restart

Também no samba é possível auditar o acesso as pastas do servidor, desta forma conseguimos identificar qual usuário que acessou determinada pasta, ou excluiu, modificou...

Como fazer! Defina o seguinte bloco na sessão global:

vfs objects = full_audit
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown
full_audit:prefix = %u|%I|%S
full_audit:failure = none
full_audit:facility = local5
full_audit:priority = notice

Obs.: veja que na variável full_audit podemos definir qual ação será auditada, também é possível definir essa linha por compartilhamento.

Abra o arquivo /etc/rsyslog.conf e adicione a linha abaixo:

local5.notice /var/log/samba-full_audit.log

Reinicie o samba e o rsyslog para que as configurações sejam aplicadas:

# /etc/init.d/samba restart
# /etc/init.d/syslogd restart


Se tudo foi realizado conforme descrito, os logs já devem estar funcionando...

Ver logs de um usuário:

# grep NomeDoUsuário /var/log/samba-full_audit.log

Ver logs de determinado usuário com o IP 192.168.1.23:

# grep NomeDoUsuário /var/log/samba-full_audit.log | grep 192.168.1.23

Ver logs de quem abriu pastas do samba:

# grep opendir /var/log/samba-full_audit.log

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Compartilhando diretórios em partições FAT com o Samba

Samba e seu processo de resolução de nomes

Sobre WINS (Windows Internet Name Service)

Compilando e Utilizando o Samba4

Montando um PDC com OpenBSD

  
Comentários
[1] Comentário enviado por wagnerfs em 05/01/2016 - 17:58h

Mais uma contribuição para o fortalecimento da nossa comunidade do VOL. Parabéns por compartilhar o conhecimento.
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782

[2] Comentário enviado por fedoralinux36 em 07/01/2016 - 13:54h

Excelente artigo,camarada!

[3] Comentário enviado por wmiyake em 23/01/2017 - 10:33h

Gostei do artigo estou tendo problema para habilitar o perfil movel você tem alguma dica?

[4] Comentário enviado por marcelondc em 23/01/2017 - 14:37h


[3] Comentário enviado por wmiyake em 23/01/2017 - 10:33h

Gostei do artigo estou tendo problema para habilitar o perfil movel você tem alguma dica?


Perfil móvel?

[5] Comentário enviado por ctavares em 16/05/2018 - 11:25h

Bom dia,
Usei seu tutorial mas não consigo acessar via rede de uma maquina Windows, o log auth.log mostra isso:

May 16 11:18:13 vitasrv03-php smbd_audit: pam_unix(samba:session): session closed for user nobody
May 16 11:18:13 vitasrv03-php smbd_audit: pam_unix(samba:session): session closed for user nobody
May 16 11:21:44 vitasrv03-php smbd: pam_unix(samba:session): session opened for user admintech by (uid=0)
May 16 11:21:54 vitasrv03-php smbd_audit: pam_unix(samba:session): session closed for user admintech
May 16 11:21:58 vitasrv03-php smbd: pam_unix(samba:session): session opened for user admintech by (uid=0)
May 16 11:22:13 vitasrv03-php smbd_audit: pam_unix(samba:session): session closed for user admintech
May 16 11:22:13 vitasrv03-php smbd: pam_unix(samba:session): session opened for user admintech by (uid=0)
May 16 11:22:13 vitasrv03-php smbd: pam_unix(samba:session): session closed for user admintech
May 16 11:22:22 vitasrv03-php smbd: pam_unix(samba:session): session opened for user admintech by (uid=0)
May 16 11:22:22 vitasrv03-php smbd: pam_unix(samba:session): session closed for user admintech

Sabe me dizer o que é o problema?

[6] Comentário enviado por ctavares em 16/05/2018 - 11:35h


[5] Comentário enviado por ctavares em 16/05/2018 - 11:25h

Bom dia,
Usei seu tutorial mas não consigo acessar via rede de uma maquina Windows, o log auth.log mostra isso:

May 16 11:18:13 vitasrv03-php smbd_audit: pam_unix(samba:session): session closed for user nobody
May 16 11:18:13 vitasrv03-php smbd_audit: pam_unix(samba:session): session closed for user nobody
May 16 11:21:44 vitasrv03-php smbd: pam_unix(samba:session): session opened for user admintech by (uid=0)
May 16 11:21:54 vitasrv03-php smbd_audit: pam_unix(samba:session): session closed for user admintech
May 16 11:21:58 vitasrv03-php smbd: pam_unix(samba:session): session opened for user admintech by (uid=0)
May 16 11:22:13 vitasrv03-php smbd_audit: pam_unix(samba:session): session closed for user admintech
May 16 11:22:13 vitasrv03-php smbd: pam_unix(samba:session): session opened for user admintech by (uid=0)
May 16 11:22:13 vitasrv03-php smbd: pam_unix(samba:session): session closed for user admintech
May 16 11:22:22 vitasrv03-php smbd: pam_unix(samba:session): session opened for user admintech by (uid=0)
May 16 11:22:22 vitasrv03-php smbd: pam_unix(samba:session): session closed for user admintech

Sabe me dizer o que é o problema?


Ops!, Desculpem foi erro meu, liberei para um grupo no smb.conf e criei outro no Linux, depois de acertado esse detalhe tudo funcionou perfeitamente. Otimo artigo. Muito obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts