Interprétation 1: un répertoire est un sous-espace du système de fichiers. Il peut être subdivisé en sous-espaces en y créant des sous-répertoires. Le propriétaire du répertoire foo
devrait avoir le contrôle sur tout l' intérieur du sous - espace: foo/bar
, foo/bar/qux
, etc.
Interprétation 2: un répertoire est un sous-espace du système de fichiers. Chaque répertoire est attaché à un autre répertoire, appelé son parent. Le propriétaire du répertoire foo
contrôle tout ce qui se trouve dans le sous-espace; cependant, pour un sous-répertoire foo/bar
, le propriétaire de foo
a le contrôle sur la possibilité de bar
l'attacher foo
mais pas sur ce qui se trouve à l'intérieur bar
: seul le propriétaire de le bar
contrôle.
Preuve en faveur de l'interprétation 2: comme vous l'avez noté, le fonctionnement des autorisations. De plus, le fait que certains systèmes de fichiers Unix permettent d'attacher un répertoire à plusieurs parents: cela s'appelle avoir plusieurs liens durs. (Avoir plusieurs liens durs est courant pour les fichiers normaux, mais c'est généralement déconseillé ou interdit pour les répertoires principalement en raison du risque de créer des boucles, où un répertoire est son propre grand-parent N fois supprimé - vous ne pouvez donc pas y accéder depuis la racine répertoire, qui est une attente très courante. Il y a aussi le problème de ce qu'il faut faire si un répertoire a 0 liens durs mais n'est pas vide: puisque le répertoire n'est pas attaché, vous voudriez le supprimer, mais que faites-vous avec son Contenu?)
Preuve en faveur de l'interprétation 1: dans la pratique, les répertoires ont un seul parent et forment donc une structure arborescente. Et vous ne pouvez pas accéder à foo/bar/qux
moins que vous avez l' autorisation d' exécution sur foo
ainsi que bar
(bien, sauf qu'il existe des moyens quelque peu obscures à donner accès à bar
sans être donné à l' accès foo
). Les niveaux supérieurs importent donc.
Sur une note plus pratique, dans votre situation, l'utilisateur A peut faire
ordures mkdir
mv foo / bar poubelle /
rmdir foo