/etc/passwd 应该为系统中的每个用户设置一行。除了常用用户名和 root 之外,还有许多其他用户。以下是一些示例:
timidity:x:114:127:TiMidity++ MIDI sequencer service:/etc/timidity:/bin/false
liquidsoap:x:115:128::/usr/share/liquidsoap:/bin/false
statd:x:116:65534::/var/lib/nfs:/bin/false
gdm:x:117:131:Gnome Display Manager:/var/lib/gdm:/bin/false
mysql:x:118:133:MySQL Server,,,:/nonexistent:/bin/false
- 这些用户的目的是什么?
- 我如何以 mysql 或 gdm 身份登录?密码是什么?
答案1
它们就是所谓的“服务账户”,用于分离权限(例如,mysql 无法读取它不拥有的文件)。
由于条目的原因,它们无法以交互方式登录/bin/false
。相反,它们仅用于访问相应的文件。
答案2
这些帐户用于在后台运行服务。您的 Linux 系统将有一系列应用程序在后台执行一系列任务,正如您正确识别的 SQL 就是这样一种服务。为了使这些服务能够执行活动,必须附加一个用户。
为了保护系统的安全,这些任务不能以 root 身份执行,而是分配给没有 shell 或登录访问权限的账户,如/bin/false
或/sbin/nologin
。这还允许仅向每个应用程序使用的文件分配权限。
由于此原因,您无法以这些用户的身份登录。
答案3
这些用户不是传统意义上的交互式用户,而是在您的机器上运行服务的用户。因此,您无法轻易以这些用户的身份登录,也不应该这样做。这些帐户要么没有密码(登录被禁用),要么有随机生成的密码。root 可以使用 su 调用无密码帐户(通常在启动时)来运行实际服务。