ls
私はかなり長い間完全に混乱しており、読み取り権限があるにもかかわらず、特定の場所で働くことを拒否しました。ちょっとした混乱の終わりにls
orを使って実行している限り、それはうまく機能することがわかりました。ただし、or--color=never
を使用して実行するとすぐに、実行権限がないすべての項目に慣れているエラーが発生します。auto
always
Permission denied
この問題の原因は何であり、ls
出力色を維持しながらこれを防ぐ方法は何ですか?
更新:さて、いよいよ見つけました(いつものように助けを求めた直後)。ディレクトリに入るには実行権限が必要なので、cdとls --colorはこの権限を持たないディレクトリでは機能しません。なぜそれがないディレクトリでls --color = neverを使い続けることができるのかわかりません。なぜそうなのだろうか?
ベストアンサー1
ディレクトリの内容(アイテム名)を表示するには、そのディレクトリに対する読み取り権限のみが必要です。
/bin/ls
これは、問題なくすべての名前を実行して表示できることを意味します。
ただし、名前を表示する色を決定するには、ls
アイテムで別のプロパティを使用してください。ファイルのメタデータ(権限、サイズ、ファイル形式など)を使用します。これにはファイルでstat()
なければならず、成功するにはディレクトリに対する実行権限が必要です。
ディレクトリ内のファイル名だけが必要です。読み取り権限のみが必要です。ディレクトリ内のファイルのメタデータ:読み取りおよび実行権限が必要です。