Provavelmente estou perdendo algo extremamente óbvio ..... mas não consigo ver.
Eu tenho um diretório comum no FreeBSD, controlado por NFSv4 ACLs. As ACLs dizem que posso listar seu conteúdo; mas não posso.
Aqui está a getfacl
saída no diretório do problema e seu pai + avô:
# getfacl /mnt/data_dir/working_dir/
# owner: root
# group: wheel
group:data_managers:-w-pDd--------:-------:deny
everyone@:r-------------:-------:allow
group:data_managers:rwxpDda-R-c---:fd-----:allow
owner@:--------------:fd-----:allow
group@:--------------:fd-----:allow
everyone@:--x-----------:-d-----:allow
# file: /mnt/data_dir
# owner: root
# group: wheel
owner@:rwxpDdaARWcCos:fd-----:allow
group@:rwxpDdaARWcCos:fd-----:allow
everyone@:r-x---a-R-c---:fd-----:allow
# file: /mnt
# owner: root
# group: wheel
user::rwx
group::r-x
other::r-x
Eu su
, como a conta recém-criada com o problema de ACL. Esta conta não é proprietária de nenhum diretório relevante, nem membro de wheel
ou data_managers
, portanto, seus únicos direitos decorrem das permissões/ACLs "todos (mundo)".
$ su -f restricted_user
% id
uid=1100(restricted_user) gid=65533(nogroup) groups=65533(nogroup),4003(restricted_users)
% pwd
/mnt/data_dir/working_dir
% ls
ls: .: Permission denied
Eu não entendo. A permissão mundial nesse diretório é everyone@:r .....
(herança descendente para subdiretórios para "x", mas não para "r"). r
deve dar direitos mundiais para ler o conteúdo de working_dir
. Não é um membro de data_managers
e se fosse, o deny ACE não está negando r
ou x
. Eu posso atravessar para isso. Mas não consigo ler seu conteúdo.
O que eu perdi?
Agora explorado e reproduzível, arquivado como um bug na avaliação do FreeBSD ACL:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=228538