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?