web-dev-qa-db-ja.com

誰かが `ls -l`コマンドを実行するたびに/ etc / passwdが使用されるのはなぜですか?

[〜#〜] apue [〜#〜]から読み取ってください。

パスワードファイルは、ユーザーがUNIXシステムにログインするたび、および誰かがls -lコマンドを実行するたびに使用されます。

28
Rick

ファイルシステムは、ユーザー名とグループ名(文字列)ではなく、数値UID(ユーザーID)とGID(グループID)の値をファイルに直接関連付けます。したがって、ls -lコマンド(およびファイルのユーザーとグループの所有者を表示するその他のコマンド)は、どこかからユーザー名とグループ名を取得する必要があります。 /etc/passwdファイルはそのようなソースの1つです(おそらく、元の最も一般的なソースです)。マニュアルはこれを示しています- PASSWD(5) から(つまり、/etc/passwdファイルのマニュアルページ):

ls(1)などの多くのユーティリティは、ユーザーIDをユーザー名にマッピングするために使用します

50
igal