Vamos entender antes sobre o significado dos termos POSIX e ACL.
POSIX
POSIX é um padrão seguido por diversos Sistemas Operacionais e tem o intuito deixar Sistemas Operacionais Uniformes e dentro de um mesmo padrão.
Faz parte desse objetivo de padronizar tornar o código fonte(source code) de programas compatíveis e transferíveis entre Sistemas Operacionais derivados do UNIX, como Linux, FreeBSD… por exemplo, posso usar um programa do Linux no FreeBSD. Além dessa portabilidade entre programas de Sistemas Operacionais, o padrão POSIX possui, o que muitos chamam de interfaces, que tentam garantir existam itens em comuns nos diversos Sistemas. Assim, todo Sistema que segue o padrão POSIX deve ter um shell(interpretador de comandos, como o bash, sh…) e outros programas como ls, cd…
ACL POSIX
Antes de tudo, saiba que para se trabalhar com ACLs usamos as ferramentas setfacl e getfacl e que uma ACL (lista de controle de acesso) é uma lista de permissões associadas a um arquivo ou diretório. Essas permissões permitem que você restrinja o acesso a um determinado arquivo ou diretório por usuário ou grupo.
Um exemplo de uma ACL POSIX básica seria assim:
# file: lista.txt # owner: maria # group: ADM user::rw- group::r-- other::r--
Diferentemente das permissões simplistas do linux baseadas nas básicas letras wrx, ACL é um recurso mais completo e relativamente novo no sistema operacional Linux, mas já bem conhecido e disponível no FreeBSD e no Solaris há algum tempo.
ACL vem de Access Control List(ou Lista de Controle de Acesso), e, como o nome sugere, é referente a permissões de acesso. Como exemplo, podemos citar permissões em pastas e arquivos; podemos tirar permissões para o usuário joão ou conceder acesso para maria.
Quando as permissões baseadas no modo Unix não forem suficientes, use uma ACL.
Essas permissões se aplicam a um usuário ou a um grupo e usam os mesmos rwx encontrado nas permissões regulares. Porém, diferentemente dessas permissões que chamamos aqui de regulares e que usam as letras rwx, as permissões ACL são mais complexas, são granulares, ou seja, mais refinadas.
Lembre-se que, falando de rwx:
- r vem de read ou leitura
- w vem de write ou escrita
- x vem de executável
As ACLs podem ser configuradas por usuário, por grupo ou por meio da máscara de direitos efetivos e são armazenadas como atributos estendidos nos metadados do sistema de arquivos.
Ao contrário do que muitos imaginam. as ACLs não abandonam completamente o sistema de permissão tradicional baseado no leitura(r), escrita(w) e execução(x) e carregam também permissões baseadas em grupos e usuários. Mas, uma lista de controle pode ser definida para qualquer usuário ou grupo que não corresponda a nenhuma das ACLs de usuário ou grupo, muito parecido com os “outros” bits de modo de um arquivo. As listas de controle de acesso também possuem o que é chamado de mask(máscara) ACL, que atua como uma máscara de permissão para todas as ACLs que mencionam especificamente um usuário e um grupo. Isso é semelhante a umask, mas não exatamente o mesmo. Por exemplo, se você definir a máscara ACL como r–, quaisquer ACLs pertencentes a um usuário ou grupo específico e com menos permissões (por exemplo, rw-) se tornarão efetivamente r–. Os diretórios também podem conter uma ACL padrão, que especifica as ACLs iniciais de arquivos e subdiretórios criados dentro deles.
As listas de controle de acesso POSIX(ACLs) são direitos de acesso mais refinados para arquivos e diretórios. Uma ACL consiste em entradas que especificam permissões de acesso em um objeto associado. As ACLs podem ser configuradas por usuário, por grupo ou por meio da máscara de direitos efetivos.
Veja também: O que é POSIX (Portable Operating System Interface)?
Comments on “Linux: O que Significa POSIX ACL(Acess Control Lists)?”