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?
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.
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.
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.
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?ls -l
coloca 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.+
, pelo menos, me impede de fazer-me desprevenidoAs 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
chmod
comando 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.fonte
ls -l
?ls
têm um extra+
no final ou execute ogetfacl
comando para exibir todas as permissões, incluindo ACL.getfacl myFile
?