Como posso usar o ACL para dar a um usuário controle sobre um diretório e todo o seu conteúdo

2

Dois usuários, Foo e Bar. Foo quer que Bar trabalhe em um projeto na diretoria de Foo.

[foo]$ mkdir project
[foo]$ # Set defaults
[foo]$ setfacl -m d:u::rwx,d:g::rwx,d:o::--- project
[foo]$ # Set defaults overrides for bar
[foo]$ setfacl -m d:u:bar:rwx project
[foo]$ # Set actual acls for project dir
[foo]$ set facl -m u::rwx,g::rwx,o::--- project

Em seguida, o foo começa a criar arquivos e diretórios no novo diretório do projeto.

Agora, depois de garantir que bar tenha permissão para acessar o diretório do projeto (ou seja, possui permissões adequadas em todos os diretórios pai), bar tem acesso a todos esses arquivos e diretórios e pode criar seus próprios, que herdam a ACL do diretório do projeto.

No entanto, isso significa que a pasta de projeto foo contém o material de propriedade de bar , o que poderia significar que foo não tem acesso. por exemplo,

[bar]$ # feeling annoying...
[bar]$ cd /path/to/project
[bar]$ mkdir -p -m 700 ha/ha
[bar]$ dd if=/dev/zero of=ha/ha/evil bs=1G count=10

Agora, o foo pode retirar o acesso da barra à pasta do projeto, mas fica preso a um arquivo de 10 GB que o foo não pode acessar nem excluir!

Existe uma maneira de garantir que o foo sempre tenha direitos totais sobre quaisquer arquivos / diretórios criados em um diretório específico?

    
por artfulrobot 20.08.2015 / 23:21

1 resposta

1

Com a proposta desatualizada do ACL de 1993, que foi retirada em 1997, não há como fazer isso, pois a barra sempre pode alterar as permissões de uma maneira que poderia impedir que foo seja capaz de controlar as coisas. Observe que essa proposta do ACL nunca se tornou um padrão porque os usuários estão insatisfeitos com ela desde o início.

Eu recomendo usar um sistema de arquivos mais moderno, como o ZFS, que suporte o padrão moderno da ACL derivado do NTFS e que agora esteja padronizado na definição do NFSv4. Com as ACLs do NFSv4, você pode configurar uma ACL dedicada que seja a única pessoa que pode controlar as definições da ACL e com as ACLs padrão nos diretórios que se propagam automaticamente, as permissões necessárias podem ser configuradas de forma a conceder acesso à barra mas não a permissão para alterar as ACLs. Veja a man page chmod: link para informações sobre as ACLs do NFSv4.

    
por 20.08.2015 / 23:41