Publicado por: Rafael Martins | 27/Setembro/2007

Controle de Acesso em sistema de arquivos locais

Bom, considere os sistemas multi-usuários atuais, e a necessidade de se manter o equilíbrio e controle de privacidade e o compartilhamento, ao mesmo tempo. Difícil? nem tanto. Aqui vai uma olhada rápida na forma tradicional, com permissões, de se fazer e em seguida o que para mim era novidade: File Access Control List’s.

as três permissões básicas:

r (read-leitura), w (write – escrita), x (execução, acesso);

que restringem e os três conjuntos de usuários envolvidos:

u (usuário dono), g (grupo), o (outros-resto do mundo)

além de ainda temos outros especiais(sticky,setuid,setgid) e atributos. Como não é o foco deste post, recomendo ler os manuais do chmod (man chmod) e chattr (man chattr) além do “pai google” :) para entendê-los um pouco mais.

O problema é que nem sempre isso é o suficiente, nem sempre dá para restringir satisfatoriamente utilizando apenas estes 3, ou fazendo de forma recursiva

O conceito de ACL’s já é largamente utilizado no Squid(1) por exemplo, ou no SVN(2), mas localmente não sabia dessa utilização.

Para os mais pragmáticos, ou quem sabe “bottons-up”: download e instalação (3)
# apt-get install acl eiciel

acl para suporte a File ACL e eiciel um gerenciador gráfico pra gnome(apesar de funcionar no kde se você tiver as bibliotecas necessárias)

Agora um exemplo prático pelo qual utilizei ACL: compartilhamento de arquivos entre usuários.

1º definir um diretório público, p.ex: mkdir /home/compartilhados

existem problemas em relação à edição de arquivos por diferentes usuários com suas configurações padrões, principalmente devido ao UMASK(4) 022. Em alguns casos não é desejável modificar o umask dos usuários, por motivos de segurança, privacidade, etc.

2º montar o sistema de arquivos com a opção acl:

# mount -o remount,acl /<partição onde quer se aplicar o controle>

ou, para persistir a modificação, altere o seu /etc/fstab

3º modificar as opções de controle de acesso do arquivo/pasta

# setfacl -dm m:rwx /home/compartilhado/

aqui, modifiquei(-m) o padrão(default: -d) da máscara para que qualquer documento criado esteja com rwx, automatica e recursivamente, evitando scripts de chmod -R… num cron ou utilização de uma partição fat (mas fica registrada a idéia de montar em loopback um arquivo formatado em fat – que funciona. by meu amigo engenilk)

ou executando o eiciel ao bom estilo gnome kiss de resolver as coisas.

e concluindo, você terá a sua disposição mais uma forma de controlar seu sistema.

linkografia:

http://ubuntuforums.org/showthread.php?t=410065

http://ubuntuforums.org/showpost.php?p=832721

http://opensource.weblogsinc.com/2005/12/06/an-acl-gui-for-linux/

(1) Para os que não conhecem, um caching Web Proxy livre.

(2) SubVersion: Controle de Versões, CVS-like

(3) para os desafortuna não usuários de linux da família debian: os sources, e pacotes para outras distro’s(ei pessoal o desfortuna, brincadeiras com gnome… é só brincadeira “não alimentem os trolls”):

http://rofi.roger-ferrer.org/eiciel/?s=7

http://acl.bestbits.at/

(4)Umask é uma forma de definir com quais permissões os arquivos de determinado usuário serão criados por padrão, é alterável. É uma “máscara” ou seja, mais ou menos o inverso do q se deseja: umask=022 significa criação com permissões 644(arquivos), ou 755(diretório). No caso em questão, um usuário Fulano cria um documento que apenas ele pode rw, e outro Cicrano, do mesmo grupo, podem apenas r, não podendo modificar o documento – ei, isso não é compartilhar! :)


Respostas

  1. > … “não alimentem os trolls” ….

    Aproveitando para inaugurar minhas postagens…

    Eu já ‘tava me preparando pra reclamar…

    Mas fora isso… :P
    Matéria legal! Assim como o blog todo…
    ta ficando bacana! Parabens
    Show de bola o topo com a vista do RU hehehehe


Deixe uma resposta

Sua resposta:

Categorias