Interpretação 1: um diretório é um subespaço do sistema de arquivos. Ele pode ser subdividido em subespaços, criando subdiretórios nele. O proprietário do diretório foo
deve ter controle sobre tudo dentro do subespaço: foo/bar
, foo/bar/qux
, etc.
Interpretação 2: um diretório é um subespaço do sistema de arquivos. Todo diretório é anexado a outro diretório, chamado pai. O proprietário do diretório foo
tem controle sobre tudo dentro do subespaço; no entanto, para um subdiretório foo/bar
, o proprietário de foo
tem controle sobre se bar
pode ser anexado, foo
mas não sobre o que ocorre dentro bar
: apenas o proprietário de bar
tem controle sobre isso.
Evidências a favor da interpretação 2: como você observou, a maneira como as permissões funcionam. Além disso, o fato de alguns sistemas de arquivos Unix permitirem que um diretório seja anexado a mais de um pai: isso é chamado de ter vários links físicos. (Ter vários links físicos é comum para arquivos regulares, mas geralmente é desencorajado ou proibido para diretórios, principalmente devido ao risco de criação de loops, onde um diretório é o seu próprio avô N vezes removidas - para que você não possa acessá-lo a partir da raiz Também é um problema o que fazer se um diretório tiver 0 links físicos, mas não estiver vazio: como o diretório está desanexado, você deseja excluí-lo, mas o que você faz com o diretório conteúdo?)
Evidências a favor da interpretação 1: na prática, os diretórios têm um único pai e, portanto, formam uma estrutura em árvore. E você não pode acessar, a foo/bar/qux
menos que tenha permissão de execução foo
, bem como bar
(bem, exceto que existem maneiras um tanto obscuras de obter acesso bar
sem ter acesso a foo
). Portanto, os níveis superiores são importantes.
Em uma nota mais prática, na sua situação, o usuário A pode fazer
mkdir lixo
mv foo / bar lixo /
rmdir foo