/etc/passwd 文件是 Linux 系统中存储用户账户信息的文本文件。
每一行代表一个用户账户,字段之间使用冒号分隔,共有七个字段,分别是:
- 用户名(Username):用户的登录名,用于识别用户身份。
- 密码(Password):用户密码,现在一般都用 x 或者 * 表示密码存储在 /etc/shadow 文件中,不直接存储在 /etc/passwd 文件中。
- 用户ID(User ID):用于标识用户的数字ID,通常称为UID。
- 组ID(Group ID):用户所属的主组的数字ID,通常称为GID。
- 注释(Comment):一般包含用户的全名或者其他描述性信息。
- 家目录(Home Directory):用户登录后默认的工作目录。
- 登录Shell(Login Shell):用户登录后使用的Shell程序的路径。
示例
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
:/sbin/nologin
当用户尝试登录系统时,如果其登录 Shell 被设置为 /sbin/nologin
,系统将拒绝该用户的登录请求,并显示一条消息,通知用户他们无法登录。
常见用户
root:需要开启,系统管理员账户,拥有系统的最高权限。
adm:需要开启,通常用于系统日志的管理,日志文件通常存储在 /var/log 目录下。
bin:需要开启,用于存储二进制可执行文件,系统级别的基本工具和命令通常存储在 /bin 目录下。
daemon:需要开启,用于运行守护进程(daemon)的用户,它们是在后台运行的系统服务。
hutdown:需要开启,用于执行系统关机操作。
halt:需要开启,用于执行系统停止(halt)操作。
sync:需要开启,用于磁盘同步,确保文件系统的稳定性和数据一致性。
ftp:用于 FTP 服务的用户,如果系统不提供 FTP 服务,则可能是可选的。
sshd:sshd 用户用于运行 SSH 服务器。SSH(Secure Shell)是远程登录和安全传输数据的协议。如果你的系统需要提供 SSH 服务以供远程访问,那么通常需要启用这个用户。
arpwatch:用于 ARP 监控的用户,如果系统不需要监控 ARP,则可能是可选的。
avahi:用于 Avahi 服务的用户,如果系统不需要 Avahi 服务,则可能是可选的。
chrony:Chrony 是 Linux 系统中的时间同步服务,用于同步系统时钟。chrony 用户用于运行 Chrony 服务。如果你的系统需要进行时间同步,那么通常需要启用这个用户。
dbus:DBus 是 Linux 系统中的消息总线系统,用于不同应用程序之间的通信。dbus 用户用于运行 DBus 服务。如果系统上有使用 DBus 的应用程序,那么通常需要启用这个用户。
ntp:ntp 用户用于运行网络时间协议(NTP)服务。NTP 服务用于同步系统时钟与网络时间服务器。如果你的系统需要进行时间同步,那么通常需要启用这个用户。
nscd:nscd 是 Name Service Cache Daemon 的缩写,用于缓存系统的命名服务信息,如密码、组和主机名。nscd 用户用于运行 nscd 服务。如果你的系统需要提高命名服务的性能,那么通常需要启用这个用户。
polkitd:polkitd 是 PolicyKit 守护进程的用户。PolicyKit 是 Linux 中用于管理系统权限的框架,允许非特权用户执行特定操作而不需要超级用户权限。如果系统上使用了 PolicyKit,那么通常需要启用这个用户。
postfix:Postfix 是 Linux 系统中的邮件传输代理(MTA),用于发送、接收和路由电子邮件。postfix 用户用于运行 Postfix 服务。如果你的系统需要作为邮件服务器,那么通常需要启用这个用户。
saslauth:用于 SASL 鉴权的用户,如果系统不需要 SASL 鉴权,则可能是可选的。
systemd-network:这个用户通常用于运行 systemd 的网络管理服务。systemd-network 服务负责管理系统的网络配置和连接。如果你使用 systemd 管理网络,那么通常需要启用这个用户。
sssd:用于 System Security Services Daemon (SSSD) 的用户,如果系统不使用 SSSD,则可能是可选的。
tcpdump:tcpdump 是一个网络数据包分析工具,用于捕获和分析网络流量。tcpdump 用户用于运行 tcpdump 命令。如果你需要使用 tcpdump 进行网络分析,那么通常需要启用这个用户。
nobody:通常用于运行不需要特定用户权限的服务或进程。
lp:用于打印服务,例如打印队列的管理和打印作业的提交。如果系统需要打印服务,则需要开启,否则可以禁用。
games:用于游戏相关的用户,如果系统没有游戏相关的服务或者游戏程序,则可能是可选的。
mail:用于邮件服务的用户,例如邮件的投递和收取。如果系统不提供邮件服务,则可能是可选的。
operator:通常用于操作员用户,如果系统没有操作员登录需求,则可能是可选的。
rpcuser:用于 RPC 服务的用户,如果系统不提供 RPC 服务,则可能是可选的。
rngd:用于随机数生成器守护进程的用户,如果系统不需要随机数生成器服务,则可能是可选的。
tss:这是由 trousers 软件包创建的用户,用于安全子系统的运行。