Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Aprenda inglês em casa

Baixe gratuitamente as duas primeiras aulas


 

Aprenda inglês em casa

Baixe gratuitamente as duas primeiras aulas

English for Reading and Listening

Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.

Saiba mais e faça sua inscrição

Red Bug

Você está aqui: Home  → Arquivo Dicas-L

 

Tempo Real Eventos - Mão na Massa Postgresql

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Publicar em del.icio.us

Semana 4Linux - Dicas SAMBA

Colaboração: Francisco Kem-iti Saito

Data de Publicação: 01 de Setembro de 2005

O modelo tradicional Usuário/Grupo/Outros (UGO ) do Linux não permite ajustes finos para controle de permissões. Por exemplo, não é possível negar permissões a Maria e Joaquim do grupo ADM se o grupo ADM tiver suas permissões configuradas para acessar um arquivo.

O modelo de permissões da família NT da Microsoft é baseado em Listas de Controle de Acesso (ACL).

Cada ACL é composta por uma ou mais Entradas de Controle Segurança(ACE). Quando um operador tenta acessar um recurso da rede, cada ACE é consultada e empilhada na ACL. Testa-se primeiro as permissões de negação explícitas e posteriormente as permissões positivas. A primeira ACE que referenciar o operador é aplicada.

O sistema de arquivos ext3, com patches em versões recentes da linha 2.4 do kernel e oficialmente no kernel 2.6, permite o uso de ACL de uma forma bastante parecida com sistemas da família NT (ainda faltam grupos aninhados, por exemplo).

A metodologia empregada na implementação do uso de ACL em Linux é baseada no uso de Atributos Estendidos (EA em [1]) no sistema de arquivos.

Cada atributo estendido é um par atributo/valor associado a um arquivo ou pasta. Cada par pode receber valores arbitrários.

As ACL são uma implementação específica de EA. Cada par contém um atributo(grupo ou usuário) e um valor (a permissão).

Para ativar o uso de EA em uma partição ext3, basta adicionar "user_xattr" nas opções de montagem no arquivo /etc/fstab.

Para Debian (Sarge e superior), instale as ferramentas de console para uso de EA:

  apt-get install attr

Para testar o uso de EA no sistema de arquivos, reinicie a máquina ou remonte o sistema de arquivos reconfigurado.

O exemplo abaixo, mostra a criação, usando setfattr, de um atributo chamado autor com valor "Saito" para o arquivo arquivo.txt e na sequência a leitura do atributo com o uso do comando getfattr.

  touch arquivo.txt
  setfattr -n user.autor -v "Saito" arquivo.txt
  getfattr -n user.autor arquivo.txt

De forma similar, para ativar o uso de ACL em um sistema de arquivos que tenha suporta a ACL, basta colocar o termo "acl" nas opções de montagem dentro do arquivo /etc/fstab.

Além disso, instalar o pacote de programas administrativos para ACL (pacote acl no debian)

  apt-get install acl

Para testar o uso de ACL no sistema de arquivos, reinicie a máquina ou remonte o sistema de arquivos reconfigurado.

A sequência abaixo mostra o uso de ACL no sistema de arquivos:

  touch arquivo.txt

Situação Inicial do arquivo, criado por root:

  getfacl arquivo.txt
  # file: arquivo.txt
  # owner: root
  # group: root
  user::rw-
  group::r--
  other::r--

Adição de direitos ao grupo 4linux (o parâmetro -m indica modificação, g implica em grupo)

  setfacl -m g:4linux:rwx
  getfacl arquivo.txt
  # file: arquivo.txt
  # owner: root
  # group: root
  user::rw-
  group::r--
  group:4linux:rwx
  mask::rwx
  other::r--

Remoção de direitos do usuario maria (o parâmetro -m indica modificação, u implica em usuário):

  adduser maria
  gpasswd -a maria 4linux
  setfacl -m u:maria:---
  getfacl arquivo.txt
  # file: arquivo.txt
  # owner: root
  # group: root
  user::rw-
  user:maria:---
  group::r--
  group:4linux:rwx
  mask::rwx
  other::r--

Veja que o grupo 4linux continua com os direitos, contudo maria é explicitamente desautorizada.

Remoção de todas as ACL do arquivo:

  setfacl -b arquivo.txt
  getfacl arquivo.txt
  # file: arquivo.txt
  # owner: root
  # group: root
  user::rw-
  group::r--
  other::r--

ACL no smb.conf

O uso correto de ACL no sistema de arquivos do sistema hospedeiro do SAMBA e o correto mapeamento de usuários e grupos, permite que as permissões dos compartilhamentos SAMBA possam ser configuradas usando o Windows Explorer a partir de uma estação logada com um usuário proprietário da pasta ou com poderes de Administrador de Domínio.

No smb.conf, os parâmetros mais importantes relativos as ACL são:

  map acl inherit = Yes

que permite que o Windows 2000 e superior usem corretamente as ACL e herança de ACL do SAMBA.

E

  inherit acl = Yes 

e

  inherit permissions = Yes

que controlam a herança de ACL e permissões para pastas filho.

O uso conjugado das duas opções é equivalente a "herdar permissões do objeto pai para objetos filho" no Windows Explorer.

Dessa forma as permissões de pastas e arquivos herdam os atributos da pasta pai.

Todas as opções acima são opções definidas globalmente ou por compartilhamento.

O uso de ACL permite aos administradores SAMBA uma grande flexibilidade no gerenciamento de permissões.

Minimiza a necessidade de grupos especiais ou inclusão de operadores a grupos existentes apenas para satisfazer necessidades de segurança. E elimina a necessidade de uso de cláusulas "valid users" e "invalid users" no smb.conf.

smb.conf sem supresas

É fácil saber o que você configurou no smb.conf. Contudo em trabalhos mais elaborados, precisamos ter controle sobre o estado das opções que estão configuradas como padrão e não expostas explicitamente pelo smb.conf.

Seja para aprendizado ou para varredura de possíveis problemas relativos a configuração do SAMBA, o programa testparm é essencial.

Para criar um smb.conf contendo inclusive as opções não explicitadas no smb.conf original podemos usar o comando:

  testparm -s -v > smb.conf.todos.os.parametros

O parâmetro -s faz com que o testparm seja não-interativo ( a etapa do Pressione ENTER não é necessária)

O parâmetro -v faz com que o testparm mostre todos os parâmetros e seus valores, inclusive aqueles não são referenciados explicitamente no smb.conf.

Referências

Linux Extended Attributes and ACLs


Você quer expandir o Windows para um mundo mais amplo?

Novidade: Curso de Servidor Samba - Avançado , que é baseado em experiências reais de implantações, abrangendo desde a criação de servidores simples até servidores distribuídos em vários sítios com replicação de base de usuários.

Saiba mais no site http://www.4linux.com.br/treinamento/samba_425.php ou ligue para (11) 2125-4747

Veja a relação completa dos artigos de Francisco Kem-iti Saito

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.02/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (376 votos)

Recomende este site
Recomendar este artigo


Versão para impressão


Opinião dos Leitores

Narceu
18 Nov 2007, 02:08
Bem escrito
Claudemir C. Brum
07 Mai 2007, 16:30
Parabéns pela dica, implementei e funcionou perfeitamente. Só tive que alterar um detalhe. No smb.conf faltou um "s" na linha "inherit acl = Yes".

Modifiquei para "inherit acls = Yes" e não tive mais problemas.
*Nome:
Email:
Me notifique sobre novos comentários nessa pagina
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Tempo Real Eventos - VOIP - Palestra na Íntegra
Automação Residencial - Utilizando o Asterisk
Saiba mais

Biblioteca

Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto

Sistemas de Banco de Dados
Por Ramez E. Elmasri e Shamkant Navathe

Redes de Computadores: Curso Completo
Por Gabriel Torres

UML: uma Abordagem Prática
Por Gilleanes T. A. Guedes

MySQL - Guia do Programador
Por André Milani

Marley e Eu: a Vida e o Amor ao Lado do Pior Cão do Mundo
Por John Grogan

Redes de Computadores
Por Andrew S. Tanembaum

SQL: Curso Prático
Por Celso H. Poderoso de Oliveira

Google Hacking
Por JOHNNY LONG

Criptografia em Software e Hardware
Por Edward David Moreno, Fabio Dacencio Pereira e Rodolfo Barros Chiaramonte

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

Harry Potter e as Relíquias da Morte
Por J.K. Rowling

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

Elite da Tropa
Por Luis Eduardo Soares, Andre Batista e Rodrigo Pimentel

Marley e Eu: a Vida e o Amor ao Lado do Pior Cão do Mundo
Por John Grogan

UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson

Deus, um delírio
Por Richard Dawkins

OpenGL: uma Abordagem Prática e Objetiva
Por Marcelo Cohen, Isabel Harb Manssour

Engenharia de Software
Por Roger S. Pressman

Upgrade e Manutenção de Hardware
Por Carlos E. Morimoto