Interpretazione 1: una directory è un sottospazio del filesystem. Può essere ulteriormente suddiviso in sottospazi creando in esso sottodirectory. Il proprietario della directory foo
dovrebbe avere il controllo su tutto all'interno del sottospazio: foo/bar
, foo/bar/qux
, etc.
Interpretazione 2: una directory è un sottospazio del filesystem. Ogni directory è collegata a qualche altra directory, chiamata il suo genitore. Il proprietario della directory foo
ha il controllo su tutto all'interno del sottospazio; tuttavia, per una sottodirectory foo/bar
, il proprietario di foo
ha il controllo su se bar
può essere collegato foo
ma non su ciò che accade all'interno bar
: solo il proprietario di bar
ha il controllo su quello.
Prove a favore dell'interpretazione 2: come hai notato, il modo in cui funzionano le autorizzazioni. Inoltre, il fatto che alcuni filesystem Unix consentano di associare una directory a più di un genitore: questo si chiama con più collegamenti fissi. (Avere più collegamenti fissi è comune per i file regolari, ma di solito è scoraggiato o vietato per le directory principalmente a causa del rischio di creare loop, in cui una directory viene rimossa dal proprio nonno N volte, quindi non è possibile accedervi dalla radice directory, che è un'aspettativa molto comune. C'è anche il problema di cosa fare se una directory ha 0 hard link ma non è vuota: poiché la directory non è collegata, si desidera eliminarla, ma cosa si fa con la sua Contenuti?)
Prove a favore dell'interpretazione 1: in pratica, le directory hanno un genitore single e quindi formano una struttura ad albero. E non puoi accedere a foo/bar/qux
meno che tu non abbia eseguito il permesso foo
e anche bar
(beh, tranne per il fatto che ci sono modi in qualche modo oscuri di avere accesso bar
senza averne accesso foo
). Quindi i livelli superiori contano.
Su una nota più pratica, nella tua situazione, l'utente A può fare
immondizia mkdir
mv foo / bar garbage /
rmdir foo