Howto Servidor Samba + ACL

Este artigo nos ensina a criar apenas um diretório raiz e depois apenas subpastas dentro de subpastas com permissões separadas por seu grupo, não teríamos como fazer um Samba normal porque se não todas as subpastas herdariam as permissões do diretório raiz, então temos que usar uma alternativa que nos conceda um tipo de permissões diferentes, que é o recurso da ACL.

[ Hits: 20.733 ]

Por: Vitor Alfredo de Souza Soares em 23/09/2010


Servidor Samba + ACL



Servidor Samba PDC: Servidor de arquivos Linux onde máquinas Windows conseguem acessar sem problemas.

ACL: Access Control List (Lista de Controle de Acesso)

Vamos começar com o básico, monte a sua estrutura de diretórios do Samba com apenas um diretório raiz, crie os usuários e grupos no sistema e no Samba.

Obs.: Não se esqueça de criar o root (smbpasswd -a root).

Não se esqueça de fazer o diretório raiz em uma partição separada. Ex.: /media/partição/diretório_raiz

Monte o seu smb.conf da seguinte forma:

[global]

# Nome do seu Servidor de Arquivos + ACL
comment = Servidor #nome do seu servidor
# Domínio do servidor PDC + ACL
workgroup = #Dominio do Servidor
# Indica se é obrigatório ou não a autenticação por senha
security = user
os level = 100
announce as = NT Server
domain logons = yes
# Script a ser executado quando o Usuario loga. #%U.bat = Usuario
#logon script = %U.bat

# Opções obrigatórias para se tornar um Servidor Samba PDC
domain master = yes
local master = yes
preferred master = yes
encrypt passwords = true
admin user = root #nome dos usuarios que serão administradores do Servidor veja que e presença do root e importante
domain admin group = @admsmb #grupo do administrador
keep alive = 20
debug level = 3
log file = /var/log/samba_log.%u
null passwords = no
unix password sync = yes
socket options = IPTOS_LOWDELAY TCP_NODELAY

printing = cups

#Caracteres Especiais
dos charset = UTF-8
unix charset = UTF-8

[homes]
comment = Pastas dos Usuários
public = no
browseable = no
writeable = yes
veto files = /*.exe/*.mp3/*.mpeg/*.mp4/*.avi/*.wav/*.wmv/*.wma/*.mpg/*.asf/*.sbd/*.vob/*.arj/*.bin/*.mov/*.mid/*.ogg/*.swf/*.rar/*.nrg/*.rm/*.ra/*.flv/*.iso/*.jpeg/*.jpg/*.png/*.raw/*.bmp/*.gif/*.dng/*.tif/*.rmvb/

# Servidor de Arquivos PDC + ACL
[Servidor #Nome do Servidor]
path = /media/partição/diretorio_raiz #Caminho da pasta raiz do servidor
writeable = yes
share modes = yes
browseable = yes
valid users = @admsmb #aqui adicione todos os grupos sem exceção a não ser que você queira que algum não acesse o servidor
veto files = /*.exe/*.mp3/*.mpeg/*.mp4/*.avi/*.wav/*.wmv/*.wma/*.mpg/*.asf/*.sbd/*.vob/
force create mode = 000 #Essas Permissões 000 são importantes para o bom funcionamento do seu servidor após ser concluido
force directory mode = 000 #Essas Permissões 000 são importantes para o bom funcionamento do seu servidor após ser concluido

Agora com o diretório raiz criado e o smb.conf configurado, crie suas subpastas no diretório raiz. Ex.:

# mkdir /media/samba1/UltraVS/Presidencia

Você também pode criar subpasta dentro de subpasta. Ex.:

# mkdir /media/samba1/UltraVS/Presidencia/Nsi/Suporte

Bom, com tudo criado e configurado, vamos passar agora para a ACL, o serviço de ACL é nativo no Linux a partir do kernel 2.6. Se o seu kernel for esse ou superior, pule a parte de instalação, se for um kernel mais antigo, vamos aprender a instalar esse serviço agora.

Para ver a versão do seu kernel use o comando "uname -a", a saída deste comando será a seguinte:

# uname -a
Linux ultravs 2.6.32-24-generic #38-Ubuntu SMP Mon Jul 5 09:22:14 UTC 2010 i686 GNU/Linux

Para instalar a ferramenta ACL, use o aptitude caso esteja em Debian ou distribuições derivadas do mesmo:

# aptitude update
# aptitude install acl


Para habilitar o serviço de ACL você terá que remontar a partição do diretório raiz com a ACL nele. Ex.:

# mount /media/partição -o remount,acl

Em um PDC normal sem ACL, com essa configuração todos os usuários teriam acesso a todos os arquivos certo?

Agora vamos adicionar as permissões com ACL para ver se isso vai continuar assim.

Para adicionarmos ACL vamos usar dois comandos básicos, setfacl e getfacl:
  • setfacl: inclui as permissões adicionais nas pastas do sistemas
  • getfacl: vê as permissões adicionais da pasta

Vamos aplicar permissões de leitura e execução adicionais ao diretório raiz /media/partição/diretório_raiz/ para TODOS os grupos:

# setfacl -m g:presidente:r-x /media/partição/diretório_raiz/

Obs.: O exemplo acima adiciona permissões apenas ao grupo presidente, você terá que fazer com todos da mesma forma. Veja as permissões após o grupo, isso é, apenas leitura e execução.

Agora dê um "ls -l" sobre a pasta /media/partição/diretório_raiz, a saída do comando será a seguinte:

total 16
drwxrwxrwx+ 7 root root 4096 2010-07-28 15:14 Presidencia

Note que após as permissões normais do sistema existe um mais, o que em pastas sem ACL não existem, esse mais indica que existem mais permissões além das normais do sistema.

Agora se você quiser ver que permissões são essas use o getfacl:

# getfacl /media/partição/diretório_raiz/

A saída do comando será a seguinte:

getfacl: Removendo a '/' inicial dos nomes de caminho absolutos
# file: media/partição/diretório_raiz/
# owner: root
# group: root
user::---
group::---
group:presidente:r-x
mask::---
other::---

Veja que ele mostrou as permissões normais do sistema que o dono o grupo e outros não tem permissões, porém o grupo presidente tem apenas as permissões do leitura e escrita.

Bom, basicamente isso é o servidor Samba + ACL, agora é só colocar suas permissões aos grupos e usuários sobre as pastas que desejar.

Tutorial criado por: Vitor Alfredo de Souza Soares - Fórmula Digital.

   

Páginas do artigo
   1. Servidor Samba + ACL
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Resara Server Configuration

Samba e as "vulnerabilidades" encontradas

Samba: Implementando um domínio

Samba - Configurado como PDC

Samba e seu processo de resolução de nomes

  
Comentários
[1] Comentário enviado por ctavares em 26/09/2010 - 11:13h

amigo, eu usei a ACL veto files = /*.exe/*.mp3/*.mpeg/*.mp4/*.avi/*.wav/*.wmv/*.wma/*.mpg/*.asf/*.sbd/*.vob/ entretanto o samba sumiu com tudo o que eu tinha da pasta, todas as pastas e subpastas e todos os arquivos mesmo os que eu não especifiquei para serem vetados. Sabe o porque pode ter acontecido isso?

[2] Comentário enviado por vitorsoaresjc em 27/09/2010 - 18:15h

Bom amigo provavelmente os arquivos que sumiram devem ser das extensões ligadas ao veto file, no entanto se você tirar os veto files provavelmente os arquivos iram voltar ao normal eles devem estar vetados ou seja ocultos. Faça e me diga se funcionou. Tenha cuidado ao mecher no Servidor Samba principalmente se for da empresa em que trabalha, pois ele e um dos mais importantes para os usuarios e sempre garanta o backup de todo o servidor. Caso tirar o veto files não funcione tente ver se o usuario que esta acessando o servidor tem a permissão da ACL para ver o arquivo ou seja permissão de leitura pode ser que ele esteja com permissões de execução e não de leitura então voce podera executar porem não podera ver nenhum arquivo ou sub-diretorio do diretorio acessado ex: voce pode entra no /nomedoservidor/ porem apartir dai voce não podera ver nada ! No entanto veja bem suas acl's com o usuario root. Se o problema for resolvido poste aqui qual das soluções que eu passei que você utilizou.

[3] Comentário enviado por poleski em 29/10/2010 - 09:43h

Bom dia amigo eu sou novato nesta area gostaria de fazer uma pergunta, na empresa aonde trabalho tem samba instalado e um servidor linux e as maquinas dos usuarios tem windows xp, a duvida é quando loga o usuario na maquina ele puxa as configuracoes salvas no servidor e coloca no c: da maquina e toda vez e o usuario faz o logoff o dominio busca as alterações feitas na maquina e as salva no servidor tem como impedir isso do usuario sincronizar os dados diretamente com o servidor sem salvar na maquina?

[4] Comentário enviado por vitorsoaresjc em 03/11/2010 - 14:12h

Boom amigo, pelo que eu sei a unica maneira da maquina não fazer isso e não colocando-a no dominio, tente tirar a maquina do Dominio e aii faça os teste e nos avise se deu certo e caso ache outra solução poste-a aqui para nós, obrigado.

[5] Comentário enviado por diegodtl em 27/01/2012 - 18:25h

Ótimo arquivo, parabéns.
Tô com uma dúvida: eu tenho um compartilhamento samba autenticando no AD server 2003, como ficaria a configuração?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts