Diferença entre chmod vs ACL

13

Eu entendo chmode chowncomo os bits de permissão funcionam, mas há outro sistema de permissão dentro do Linux, ACLcom setfacle getfacl, então isso me faz pensar.

Qual é a diferença entre esses dois sistemas de controle de permissão? Eles interferem um no outro?

mFeinstein
fonte

Respostas:

7

Um não é melhor que o outro, são apenas métodos e modos de pensar diferentes.

Você pode usar os dois sistemas de permissões no mesmo caminho sem problemas.

Eles interferem um com o outro ao modificar permissões de proprietário, grupo proprietário e outras permissões: ao definir o valor atual para estes no setfacl, ele realmente definirá a permissão posix, não a ACL.

As permissões Posix permitem apenas permissões de proprietário, grupo proprietário e "todos", enquanto a ACL permite vários usuários e grupos "proprietários". A ACL também permite definir permissões padrão para novos arquivos em uma pasta.

Você pode adicionar mais gerenciamento de permissão em cima de ambos com o apparmor ou o selinux para um controle mais rígido.

Zulgrib
fonte
1
Estou correto ao supor que, quando eu executar ls -l, apenas as permissões POSIX e ACL que limitam o arquivo ainda não serão exibidas? Ou as permissões posix serão respeitadas independentemente?
MFeinstein
3
@mFeinstein Depends. No Linux, ls -lcoloca um +no final dos caracteres de permissão para indicar que a ACL está presente. Se a ACL estiver presente, as permissões básicas não contarão a história completa: a ACL substituirá as permissões POSIX.
Gilles 'SO- stop be evil'
Oh, ótimo! Isso +, pelo menos, me impede de fazer-me desprevenido
mFeinstein
3

As permissões clássicas do Unix definidas pelo chmod (leitura / gravação / execução, usuário / grupo / outro) existem há muito mais tempo que a ACL. Se o ACL existisse desde o início, não haveria um chmod como o conhecemos. No entanto, como o chmod existe há muito tempo, muitos aplicativos o chamam, muitos formatos de arquivo suportam as permissões clássicas etc. Você pode expressar as permissões do chmod com a ACL; eles agem como uma espécie de ponto de partida para a ACL.

Consulte Precedência do usuário e proprietário do grupo em Permissões de arquivo e Precedência do ACLS quando um usuário pertence a vários grupos para obter um tratamento mais detalhado de como o controle de acesso funciona na presença de ACL.

O chmodcomando também controla alguns sinalizadores que não são realmente permissões, mas costumam ser chamados de permissões: setuid, setgid e o persistente . Essas não são realmente permissões, pois não afetam quais acessos estão autorizados no arquivo, mas como certas operações no arquivo funcionam depois de terem sido autorizadas. Não há nada parecido com o ACL.

Gilles 'SO- parar de ser mau'
fonte
Portanto, para entender verdadeiramente a permissão de um arquivo, tenho que verificar a ACL e ls -l?
MFeinstein
Existe uma maneira de verificar se há permissões específicas da ACL em um arquivo / diretório?
MFeinstein
@mFeinstein Veja se as permissões exibidas por lstêm um extra +no final ou execute o getfaclcomando para exibir todas as permissões, incluindo ACL.
Gilles 'SO- stop be evil'
1
Apenas getfacl myFile?
MFeinstein
1
Sim, obtenha o caminho que deseja verificar.
Zulgrib 13/05