- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ls -lでディレクトリの実行アクセス権が必要な理)
ls -lでディレクトリの実行アクセス権が必要な理由とは?
このQ&Aのポイント
- ls -lオプションはディレクトリの実行アクセス権を確認するために使用される。
- ファイルサイズをディスク情報から決定するため、ディレクトリを無条件に変更しなければならない。
- 実行アクセス権ではなく書き込みアクセス権が必要になる場合もある。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 「ファイルサイズをディスク情報から決定しなければならず、そうすると当該ディレクトリを無条件に変更してしまうことになるからです。」 確かにおかしいですね。外国の人が書いた本の翻訳版だったりします? 「ファイルサイズをディスク情報から決定しなければならず、そうすると当該ディレクトリに無条件に移動(cd)しなければならないからです。」 って解釈すれば納得いくかと。 ls non_exec_dir でディレクトリ内のファイルを表示できます。でも、 ls -l non_exec_dir とすると、 ?--------- ? ? ? ? ? testfile となって、i-nodeの情報は見えません。 そういうことが言いたいのかと思います。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.1
>「ファイルサイズをディスク情報から決定しなければならず、そうすると当該ディレクトリを無条件に変更してしまうことになるからです。」 確かに意味不明ですね。そんな本のことは忘れてしまいましょう。著者はUnix/Linuxをよく知らないと思われます。 >-lオプションをつけてもディレクトリファイルから当該ディレクトリの情報を読み出すだけなので読み出しアクセス権をつければいいだけではないでしょうか? ディレクトリに書かれているのは、ファイル名とinode番号だけです。 サイズやタイムスタンプなどは、そのファイルのinodeにアクセスする必要があります。 ディレクトリの下のファイルを読むためにはディレクトリに実行権限が必要なことはご存じかと思いますが、それと同じです。ファイルの中身のデータを読む場合だけでなく、ファイルの属性を読むのにも必要なのです。
質問者
お礼
ご回答ありがとうございます。 よく分かりました。
お礼
ご指摘どおりやはり翻訳ミスの可能性、大です おっしゃるとおりに読めば納得がいきました。 ありがとうございました。