Create and manage Access Control Lists (ACLs):
Em capítulos anteriores abordamos um dos principais aspetos base de segurança num sistema RHEL, as permissões standard de Leitura, Escrita e Execução dos ficheiros pelos diferentes utilizadores num sistema. Contudo este método apesar de versátil e bem definido, muitas vezes não é suficiente quando estamos a trabalhar num servidor com elevada utilização por diferentes utilizadores, sendo que surge a necessidade de atribuir permissões mais especificas e detalhadas a certos users. Proveniente desta necessidade surgem as ACL’s.
As Access Control Lists providenciam melhores e mais flexíveis mecanismos de permissões num Sistema de Ficheiros, sendo que estão desenhadas para serem complementares com as permissões standard anteriormente referidas. Permitem que sejam dadas permissões a qualquer utilizador ou grupo a qualquer parte do disco.
Primeiramente antes de começarmos a aplicar ACL’s temos de confirmar que a partição em que pretendemos trabalhar realmente permitem o uso deste mecanismo. Para validarmos esta situação podemos listar todas as partições no sistema com o comando mount
e de seguida fazer grep
do disco que pretendemos verificar:
# mount | grep root
/dev/mapper/Centos_localhost_root on / type ext4 (rw,acl)
Caso a partição pretendida não tenha a opção “acl” deve ser alterado no ficheiro /etc/fstab adicionando esta opção e voltando a montar a partição no sistema.
Vamos então agora imaginar que temos uma [Pasta] e esta pasta tem as seguintes características:
drwxrwxr-x. 2 [User1] [Group] 4096 Dec 15 15:45 '[Pasta]'
Contudo nos temos um outro utilizador, o [User2], que não está, nem pode estar, no mesmo [Grupo] que o [User1], contudo o [User2] tem de conseguir ler e escrever um [Ficheiro] que está dentro da [Pasta].
Para solucionarmos esta situação podemos alterar as ACL’s do [Ficheiro] com recurso ao comando setfacl
:
# setfacl -m u:[User2]:rw- [Ficheiro]
Analisando o código acima, estamos a passar a opção “-m
”para modificarmos a ACL, e de seguida respeitamos a seguinte estrutura standard: Tipo:Quem:Ação. O Tipo é para identificarmos se estamos a falar de um User “u” ou de um Grupo “g”, o Quem é para identificarmos qual o User ou Group que estamos nos a referir, e finalmente a Ação é para dizermos que permissões é que estamos a conceder.
Caso queiramos confirmar as alterações efetuadas podemos usar o comando getfacl
que nos devolve as diferentes ACL’s do ficheiro:
# getfacl [Ficheiro]
# getfacl [Ficheiro]
# file: [Ficheiro]
# owner: [User1]
# group: [Group]
user::rw-
user:[User2]:rw-
group::r--
mask::rw-
other::r--
Contudo devemos notar que o comando setfacl
permite muitas outras ações sobre as ACL’s dos ficheiros e diretórios sendo que é imprescindível uma mais profunda análise sobre as diferentes opções existentes no mesmo. Deixo o link para as suas páginas do manual disponíveis online.
Last updated
Was this helpful?