sudo lsはLinuxで隠しファイルを表示しません

sudo lsはLinuxで隠しファイルを表示しません

sudo ls今日、私は隠されたファイル(名前で始まるファイルなど.)がOS Xに表示されることを発見しました。これはとても驚いて驚きました。質問をした私はまだこの行動がやや奇妙で予想外のものだと思います。

それは明らかです、この動作は次にさかのぼることができます。1979年2BSD獲得

これに照らして、私は今、次のような質問をしたいと思います。 Linuxではなぜlsそのような動作はありませんか?他のタイプの* nixもこのように動作した
時がありましたか?lsこの機能をまったくコピーしてはならないと判断した人と理由を説明する文書、コミットメッセージ、電子メールはありますか?または最初にコピーした場合は削除する必要があると判断しましたか?

ベストアンサー1

POSIX規格には次のように規定されている。

"('.')で始まるファイル名と関連情報は、明示的に参照されない限り、-Aまたは-aオプションが指定されている場合、または実装定義の条件のために記録されない限り、記録されません。

lsルート状態は通常、LinuxディストリビューションにパッケージされたGNU Coreutils実装によって隠されたファイルが作成される条件とは見なされません。

プログラムの動作が有効なユーザーIDなどのグローバル変数の影響を受けないのに十分な理由があります。 root以外のユーザーとして開発されたスクリプトは、rootとして実行されると動作が変わります。

ドットで始まるファイルを隠すことはセキュリティメカニズムではなく、セキュリティコンテキストにリンクしてはいけません。ソースファイル.gitのディレクトリ.cやその他のコンテンツなど、通常見たくないコンテンツを非表示にします。他のユーザーのディレクトリへの読み取りアクセス権がある場合は、そのユーザーの隠しファイルを一覧表示できます。 この点は、存在を秘密にしようとするものではなく、予想され、興味深いものを隠します。

...特別なオペレーティングシステムの状態を除くドットディレクトリエントリは、ls単に特別に扱われます。

私はSolaris 10を試してみましたが、これもlsこのようには機能しません。これは、POSIX 要件がそのように指定された理由を説明する普遍的な「Unix 主義」ではありません。

おすすめ記事