De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


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

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


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