Ls

為什麼每次有人執行 ls -l 命令時都會使用 /etc/passwd?

  • March 8, 2019

讀自APUE,只是好奇:

每次使用者登錄到 UNIX 系統以及每次有人執行ls -l命令時都會使用密碼文件。

文件系統直接將數字 UID(使用者 ID)和 GID(組 ID)值與文件相關聯,而不是使用者名和組名(它們是字元串)。因此,該ls -l命令(以及顯示文件的使用者和組所有者的任何其他命令)需要從某處獲取使用者名和組名。該/etc/passwd文件就是這樣一種來源(可能是原始和最常見的來源)。手冊證明了這一點 - 來自PASSWD (5)(即/etc/passwd文件的手冊頁):

許多實用程序,例如 ls(1) 使用它將使用者 ID 映射到使用者名

引用自:https://unix.stackexchange.com/questions/505069