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: 6.565 ]

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

Samba 4 como controlador de domínio com Active Directory da MS

Evitando acúmulo de arquivos na lixeira do Samba

HOWTO Samba

Samba PDC com Debian Squeeze

Configurar SAMBA como PDC com usuário fixo

  
Comentários
[1] Comentário enviado por K666 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 eike_bsd em 07/01/2016 - 13:54h

Excelente artigo,camarada!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts