读自APUE,只是感到好奇:
每次用户登录 UNIX 系统以及每次执行
ls -l
命令时都会使用密码文件。
答案1
文件系统直接将数字 UID(用户 ID)和 GID(组 ID)值与文件关联,而不是用户名和组名(它们是字符串)。因此该ls -l
命令(以及显示文件的用户和组所有者的任何其他命令)需要从某处获取用户和组名称。该/etc/passwd
文件就是这样的来源之一(可能是原始且最常见的来源)。手册证实了这一点 - 来自密码 (5)(即文件的手册页/etc/passwd
):
许多实用程序(例如 ls(1))使用它来将用户 ID 映射到用户名