ユーザーが読み取り権限を持つディレクトリがある場合、そのディレクトリにファイルがあるかどうかを確認できないのはなぜでしょうか。たとえば、読み取り権限を持つフォルダー /myfolder があるとします。そのフォルダーには、読み取り権限 (ユーザー用) を持つファイル 'garbage.txt' があります。stat /myfolder/garbage.txt を使用しようとすると、権限が拒否されたというエラーが発生します。/myfolder に実行権限を追加すると、garbage.txt が存在するかどうかを確認できます。
フォルダー内のファイルが存在するかどうかを確認するのに実行権限が必要なのはなぜですか。ディレクトリ/フォルダーの読み取り権限で十分だと思っていました。
答え1
Linux フォルダーの権限は次のとおりです。
書き込みビットにより、影響を受けるユーザーはディレクトリ内のファイルを作成、名前変更、削除したり、ディレクトリの属性を変更したりすることができます。
読み取りビットにより、影響を受けるユーザーはディレクトリ内のファイルを一覧表示できます。
実行ビットにより、影響を受けるユーザーはディレクトリに入り、その中のファイルやディレクトリにアクセスできるようになります。
スティッキービットは、そのディレクトリ内のファイルとディレクトリは所有者(またはルート)によってのみ削除または名前変更できることを示します。
より詳しい情報:
答え2
ディレクトリの実行権限があれば、そのディレクトリをトラバースできます。また、そのファイルに対して stat を使用するには、ディレクトリをトラバースできる必要があります。
参照https://stackoverflow.com/questions/790686/understanding-linux-directory-permissions-reasoning