私はディレクトリの所有者であり、読み取りおよび書き込み権限はありますが、実行権限はないとします。ディレクトリ構造は次のとおりです。
x/ (drw-r--r--)
y (-rw-r--r--)
z (-rw-r--r--)
実行権限がないとディレクトリにアクセスできないことがわかりましたが、ディレクトリ内のファイルcd
名を変更することはディレクトリに「書き込む」と見なされると思いました。驚くべきことに、次のコマンドは許可を拒否します。
mv x/y x/w
mv
ディレクトリに対する実行権限が必要なのはなぜですかx
?このコマンドmv
に特別なものがありますか?内部mv
用ですかcd
?それとも何ですか?
答え1
読んだ後この回答関連する質問については理解すると思います。
ディレクトリはファイルのリストであり、そのディレクトリを「実行」することは、ディレクトリリスト内のファイル自体のリンクに従うことを意味します。したがって、実行権限がないため、x
コマンドのx/y
実際のファイルパスを解析できません。 (実際のファイルを取得するには、のディレクトリエントリに従う必要があります。これは「実行」という意味の一部です。)y
mv x/y x/w
y
y
x
x
ただし、ユーザーに実行権限を付与し、書き込み権限を付与しないと、次のようにx
ファイルを内部からx
外部にコピーできます。x
chmod u+x-w x
cp x/y y