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.