解釈1:ディレクトリはファイルシステムのサブスペースです。そこにサブディレクトリを作成することにより、さらにサブサブスペースに分割できます。ディレクトリの所有者は、foo
部分空間内のすべてのコントロールを持っている必要がありますfoo/bar
、foo/bar/qux
など
解釈2:ディレクトリはファイルシステムのサブスペースです。すべてのディレクトリは、その親と呼ばれる他のディレクトリに接続されています。ディレクトリの所有者はfoo
、サブスペース内のすべてを制御できます。ただし、サブディレクトリのfoo/bar
場合、の所有者は、にアタッチできるfoo
かどうかは制御bar
できますfoo
が、内部に入るものは制御できません。それを制御できるのbar
はの所有者だけbar
です。
解釈を支持する証拠2:すでに述べたように、権限の仕組み。また、一部のUnixファイルシステムでは、ディレクトリを複数の親に接続することができます。これは、複数のハードリンクを持つと呼ばれます。(通常のファイルでは複数のハードリンクを使用するのが一般的ですが、ディレクトリが祖父母のN回削除されるループを作成するリスクがあるため、通常はディレクトリの使用はお勧めできません。つまり、ルートからアクセスすることはできません。これは非常に一般的な期待です。ディレクトリにハードリンクが0であるが空ではない場合の対処方法の問題もあります。ディレクトリがアタッチされていないため、削除する必要がありますが、それをどうするか内容?)
解釈を支持する証拠1:実際には、ディレクトリには単一の親があり、ツリー構造を形成します。また、同様にfoo/bar/qux
実行権限がない場合はアクセスできません(まあ、へのアクセスを許可されずにアクセスを許可する方法がややあいまいな場合があることを除いて)。したがって、上位レベルが重要です。foo
bar
bar
foo
より実際的な注意として、あなたの状況では、ユーザーAは
mkdirガベージ
mv foo / bar garbage /
rmdir foo