Interpretacja 1: katalog jest podprzestrzenią systemu plików. Można go dalej podzielić na podprzestrzenie, tworząc w nim podkatalogi. Właścicielem katalogu foo
powinny mieć kontrolę nad wszystkim wewnątrz podprzestrzeni: foo/bar
, foo/bar/qux
, itd.
Interpretacja 2: katalog jest podprzestrzenią systemu plików. Każdy katalog jest dołączony do innego katalogu, zwanego jego rodzicem. Właściciel katalogu foo
ma kontrolę nad wszystkim wewnątrz podprzestrzeni; jednak w przypadku podkatalogu foo/bar
właściciel foo
ma kontrolę nad tym, czy bar
można do niego dołączyć, foo
ale nie nad tym, co się w nim znajduje bar
: tylko właściciel bar
ma nad tym kontrolę.
Dowody przemawiające za interpretacją 2: jak zauważyłeś, sposób działania uprawnień. Ponadto fakt, że niektóre systemy plików Unix pozwalają na dołączenie katalogu do więcej niż jednego rodzica: nazywa się to posiadaniem wielu twardych dowiązań. (Posiadanie wielu twardych dowiązań jest wspólne dla zwykłych plików, ale zwykle jest odradzane lub zabronione dla katalogów, głównie ze względu na ryzyko tworzenia pętli, w których katalog jest usuwany przez swojego dziadka N razy - więc nie możesz dostać się do niego z katalogu głównego katalog, co jest bardzo częstym oczekiwaniem. Istnieje również problem, co zrobić, jeśli katalog ma 0 dowiązań twardych, ale nie jest pusty: ponieważ katalog nie jest przyłączony, chcesz go usunąć, ale co robisz z jego zawartość?)
Dowody na korzyść interpretacji 1: w praktyce katalogi mają samotnego rodzica, a zatem tworzą strukturę drzewa. I nie możesz uzyskać dostępu, foo/bar/qux
chyba że masz uprawnienia do wykonywania, foo
jak również bar
(oprócz tego, że istnieją nieco niejasne sposoby, aby uzyskać dostęp bar
bez dostępu foo
). Zatem górne poziomy mają znaczenie.
Mówiąc bardziej praktycznie, w twojej sytuacji użytkownik A może to zrobić
śmieci mkdir
mv foo / bar garbage /
rmdir foo