É possível criar uma ACL “negativa”?

3

É possível criar uma ACL para negar o acesso a um usuário específico (digamos, jdoe ) para um arquivo específico?

Não estou interessado na solução trivial de uma ACL que fornece acesso ao arquivo para todos os usuários, exceto jdoe . Esta solução tem a desvantagem de que qualquer usuário criado sucessivamente no sistema não terá acesso ao arquivo.

Criar um grupo de todos os usuários, exceto jdoe , e conceder acesso de grupo ao arquivo tem a mesma desvantagem.

O comando setfacl -x u:jdoe /path/file não funcionará, pois remove apenas as ACLs criadas.

    
por dr01 11.05.2016 / 16:18

2 respostas

7

Claro, para demonstrar, como root ...

touch /tmp/test
setfacl -m u:jdoe:--- /tmp/test
getfacl /tmp/test
su - jdoe
cat /tmp/test
exit
rm /tmp/test

Isso também pode ser feito em todos os arquivos de um diretório:

mkdir /var/data/not-for-jdoe
setfacl -m u:jdoe:--- /var/data/not-for-jdoe
setfacl -d -m u:jdoe:--- /var/data/not-for-jdoe

Acima, a opção -m é a máscara e a opção -d faz dela a máscara padrão para todos os novos objetos do sistema de arquivos no diretório. O --- pode ter outros valores de permissão, por exemplo:

  • rwx
  • r--
  • rw-
  • r-x
  • 7
  • 4
  • 6
  • 5

O grupo e outras máscaras funcionam da mesma maneira: g:groupname:--- ou em combinação: u:username:---,g:groupname:---,o::--- . Não especificar um nome de usuário ou nome de grupo aplica a máscara à propriedade atual do usuário / grupo.

    
por 11.05.2016 / 17:52
-4

setfacl é um comando do obsoleto porque foi retirado em 1997 da proposta de rascunho POSIX ACL que nunca foi padronizada.

setfacl não pode fazer isso.

Se você tiver um sistema operacional moderno que suporte ACLs do NFSv4 / NTFS, poderá fazer isso. Veja por exemplo link

Verifique os exemplos a partir da página 19.

Isso é para o Solaris, mas o AIX e o OSX também suportam ACLs do NFSv4.

    
por 11.05.2016 / 16:24