"--color=auto|always" を使用して "ls" を実行するには実行権限が必要です。

ls私はかなり長い間完全に混乱しており、読み取り権限があるにもかかわらず、特定の場所で働くことを拒否しました。ちょっとした混乱の終わりにlsorを使って実行している限り、それはうまく機能することがわかりました。ただし、or--color=neverを使用して実行するとすぐに、実行権限がないすべての項目に慣れているエラーが発生します。autoalwaysPermission denied

この問題の原因は何であり、ls出力色を維持しながらこれを防ぐ方法は何ですか?

更新:さて、いよいよ見つけました(いつものように助けを求めた直後)。ディレクトリに入るには実行権限が必要なので、cdとls --colorはこの権限を持たないディレクトリでは機能しません。なぜそれがないディレクトリでls --color = neverを使い続けることができるのかわかりません。なぜそうなのだろうか?

ベストアンサー1

ディレクトリの内容(アイテム名)を表示するには、そのディレクトリに対する読み取り権限のみが必要です。

/bin/lsこれは、問題なくすべての名前を実行して表示できることを意味します。

ただし、名前を表示する色を決定するには、lsアイテムで別のプロパティを使用してください。ファイルのメタデータ(権限、サイズ、ファイル形式など)を使用します。これにはファイルでstat()なければならず、成功するにはディレクトリに対する実行権限が必要です。

ディレクトリ内のファイル名だけが必要です。読み取り権限のみが必要です。ディレクトリ内のファイルのメタデータ:読み取りおよび実行権限が必要です。

おすすめ記事