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
(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!
> … “não alimentem os trolls” ….
Aproveitando para inaugurar minhas postagens…
Eu já ‘tava me preparando pra reclamar…
Mas fora isso…
Matéria legal! Assim como o blog todo…
ta ficando bacana! Parabens
Show de bola o topo com a vista do RU hehehehe
Por: engenilk em 27/Setembro/2007
às 10:03 pm