Artigos 07 set 2006 09:30 pm

ACLs + Samba + NFS

O que são ACLs?

As ACLs – (Access Control List ou Lista de Controle de Acesso) extendem o nível de permissionamento de arquivos e diretórios padrão do mundo linux/unix (POSIX). Sistemas de rede como Novell Netware e Windows NT (e seus sucessores) contam com avançados serviços de diretórios.

No mundo de padrões POSIX durante muito tempo reinou o padrão usuário:grupo:outros com suas permissões rwx, porém para um bom gerenciamento de segurança em uma rede de dados é necessário muito mais do que isso e é ai que entram as ACLs.

Com as ACLs é possível definir acesso a mais de um usuário ou grupo além de definir permissões/usuários/grupos padrões para novos arquivos/diretórios.

Configurar o suporte a ACL no linux requer alguns poucos passos que incluem instalar as versões com suporte a acl das principais ferramentas de sistema como o pacote coreutils (mv, cp, rm, etc) por exemplo, instalar o pacote acl que contém os binários getfacl e setfacl, e por último adicionar suporte aos sistemas de arquivos desejados no kernel.

Também é possível adicionar suporte a ACLs nos principais sistemas de arquivos de rede como o smb e o nfs.

Este artigo cobre a configuração de ACLs em um sistema Gentoo.

Instalação dos binários

Antes de mais nada é necessário adicionar a useflag “acl” a variavel USE no arquivo /etc/make.conf e em seguida deve-se instalar o pacote acl informando ao portage para atualizar os pacotes já instalados adicionando suporte a acl:

# emerge acl --deep --newuse
(isso irá recompilar diversos pacotes, deve demorar um bom tempo)

Configuração do kernel

Adicione o suporte no kernel para o(s) sistema(s) de arquivo desejado(s):

# cd /usr/src/linux
# make menuconfig
Firmware Drivers  --->
<*> Second extended fs support
[*] Ext2 POSIX Access Control Lists
<*> Ext3 journalling file system support
[*] Ext3 POSIX Access Control Lists
<*> Reiserfs support
[*] ReiserFS POSIX Access Control Lists

Compile e instale o novo kernel:

# make
# cp arch/i386/boot/bzImage /boot/kernel-2.6.17-gentoo-r4

Testando as acls

Os comandos getfacl e setfacl são os responsáveis respectivaments por ler e definir as permissões nos arquivos/diretórios. As principais opções de uso do setfacl são:

  • -b – remove todas as permissões ACL
  • -m – adiciona permissão ACL
  • -d – adiciona permissão padrão de diretório para novos arquivos

Exemplos:

# cd /data/
# mkdir teste
# setfacl -m u:usuario:rwXg,grupo:rwX,o:rX teste
(adiciona acesso de leitura e gravação para o usuário "usuario" com permissão
de execução nos diretórios, a mesma coisa para o grupo "grupo" e acesso de
leitura e execuão no diretório para outros)

# setfacl -d -m u:user:rw teste
# cd teste
# touch file
(adiciona permissão padrão para o usuário "user" de leitura/escrita para todo
arquivo criado no diretório "teste")

O getfacl por sua vez não precisa de nenhuma opção por padrão e imprime todos os dados referentes ao arquivo/diretório:

# getfacl /data/teste
getfacl: Removing leading '/' from absolute path
name
# file: /data/teste
# owner: root
# group: root
user::rwx
group::rwx
group::grupo:rwx
mask::rwx
other::r-x
default:user::rwx
default:user:usuario:rwx
default:group::rwx
default:group:grupo:rwx
default:mask::rwx
default:other::r-x

nesse caso, se verificarmos as permissões do arquivo “file” obtemos o seguinte resultado:

# getfacl /data/teste/file
# file: /data/teste/
# owner: usuario
# group: grupo
user::rw
user:usuario:rwx       #effective rw-
group::rw
group:grupo:rwx       #effective rw-
mask::rw-
other::r--

SAMBA

Da mesma forma que os demais softwares, o samba utilizará a useflag “acl” definida no make.conf. Instale ou reinstale o samba:

# emerge samba

Diversos parâmetros configuram o suporte a acl no smb.conf. Os principais são listados abaixo:

inherit acl = Yes
inherit permissions = Yes
(preserva as permissões acl/setgid na criação de novos arquivos/diretórios)

inherit owner = Yes
(preserva o dono do diretório na criação de novos arquivos/diretórios)

Inicie/reinicie o samba e teste nos clientes windows.

# /etc/init.d/samba restart

NFS

O suporte a ACL no NFS, ao contrário do samba, deve ser ativado diretamente no kernel/modulo: (cada máquina cliente da rede deve ter o suporte a ACL ativado no modulo client de NFS assim como deve ter também todo o conjunto de ferramentas de sistema com suporte a ACL) O kernel do servidor deve ter o seguinte suporte:

<*> NFS server support
[*] Provide NFSv3 server support
[*] Provide server support for the NFSv3 ACL protocol extension

Enquanto os clientes necessitam apenas de:

<*> NFS file system support
[*] Provide NFSv3 client support
[*] Provide client support for the NFSv3 ACL protocol extension

Compile e instale o novo kernel, reincie e/ou inicie o nfs.

Referências

Compartilhe:

  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Add to favorites
  • email
  • LinkedIn
  • Netvibes
  • PDF
  • Rec6
  • Reddit
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter
  • Yahoo! Bookmarks

Posts Relacionados:

Related posts brought to you by Yet Another Related Posts Plugin.

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply

Powered by WP Hashcash