在 Linux 中,用户名是人类可读的标签,但系统使用唯一的用户 ID (UID) 来识别用户。用户名和 UID 之间的映射关系存储在 /etc/passwd 文件中,这是用户管理的关键组成部分。
要查看其内容,您可以使用一个简单的命令:
cat /etc/passwd
该文件会显示所有系统用户及其详细信息的列表。每一行代表一个用户账户。
解析 /etc/passwd 字段
该文件中典型的一行,通常是第一行,看起来像这样:
root:x:0:0:root:/root:/bin/bash
这个 root 用户的条目包含七个由冒号(:)分隔的字段。理解 Linux 中 /etc/passwd 的结构是管理用户的关键。让我们分解每个字段:
- 用户名: 用户的登录名称(例如
root)。 - 密码: 用户加密密码的占位符。出于安全原因,实际密码不会存储在这里。
x表示加密密码存储在/etc/shadow文件中。*(星号)表示账户被锁定,不能用于登录。- 空字段表示用户没有密码。
- 用户 ID (UID): 用户的唯一数字标识符。
root用户的 UID 始终为0。 - 组 ID (GID): 用户主组的数字标识符。
- GECOS 字段: 一个注释字段,传统上用于保存额外信息,如用户的全名、电话号码或办公室位置。它由逗号分隔。
- 主目录: 用户主目录的绝对路径(例如
/root)。 - 默认 Shell: 用户的默认命令行解释器,用户登录时会执行它(例如
/bin/bash)。
系统用户和特殊账户
当您检查 /etc/passwd 文件时,会注意到许多不属于人类用户的账户。这些是系统账户,用于以有限的权限运行特定的服务或进程,从而增强系统安全性。例如,daemon 用户用于运行后台守护进程。
编辑 /etc/passwd 文件
虽然您可以使用文本编辑器或 vipw 命令直接编辑 /etc/passwd 文件,但强烈不建议这样做。手动编辑很容易引入语法错误,可能导致您被锁定在系统之外或导致系统不稳定。
使用 useradd、usermod 和 userdel 等专用命令行工具来管理用户账户始终更安全、更可靠。这些工具旨在正确修改文件并处理所有相关的配置。