列出所有Linux用户的两种方法
使用 /etc/passwd 文件列出 Linux 中的所有用户
本地用户的详细信息可以在
/etc/passwd
文件中找到。文件中包含的每一行都包含一个用户的信息。
有两种选择。
- 通过键入以下命令打开
etc/passwd文件:
cat etc/passwd
- 或者,你可以使用以下
less
命令:
less etc/passwd
注意:要显示登录用户列表以及引导时间、进程、主机名等信息,请使用who 命令。
使用getent命令列出所有Linux用户
/etc/nsswitch.conf
文件中配置的数据库条目包括带有所有用户名和登录信息的passwd 数据库。
要提取此数据,请使用以下命令:
getent passwd
选项 1和选项 2都将显示所有用户及其登录信息。

每行代表一个用户并具有七(7) 个字段。
字段由(冒号)分隔,每行包含以下信息:
- 1.用户名
- 2.加密密码(用
x
表示,位于/etc/shadow
文件中) - 3.用户 ID 号(称为
UID
) - 4.用户组 ID(称为
GID
) - 5.用户全名
- 6.用户主目录
- 7.登录shell(默认设置为
bin/bash
)

如何只列出 Linux 用户名
如果你不需要与每个用户相关的所有信息,你可以只列出系统上的用户名。有两种方法可以查看每个用户的第一个字段(用户名)。
- 选项 1:使用awk或cut命令。
要仅列出用户名,你可以使用以下两 (2) 个命令之一:
awk –F: '{ print $1}' /etc/passwd
cut –d: –f1 /etc/passwd
- 选项 2:将
getent
命令与awk
和一起使用cut
。
要使用该命令读取和显示用户名而不显示任何其他信息
getent
,请运行以下命令:
getent passwd | awk -F: '{ print $1}'
或者,使用以下命令:
getent passwd | –d: –f1
如何搜索现有 Linux 用户
该
getent
命令还允许你检查系统上是否存在用户。
以下两个命令中的任何一个都将为你提供该信息:
getent passwd | grep username
getent passwd username
如果用户存在,它将显示登录信息。另一方面,如果没有这样的用户,则不会有输出。
例如,在下图中,查询显示名为example的用户是否存在。输出证明存在这样的用户。

系统用户与普通用户
系统用户是创建普通用户的用户。因此,在这种情况下,系统用户是 root。此用户是在你首次安装 Linux 操作系统时创建的。此外,你可以为特定应用程序创建系统用户。
另一方面,普通用户是root(或具有sudo权限的用户)创建的所有用户。每个普通用户和系统用户都有一个真实的登录 shell、主目录以及一个用户 ID (UID) 号。用户 ID 号在最小值和最大值之间的范围内自动给出。
如何检查UID_MIN 和 UID_MAX
如果要检查普通用户的 UID 范围,请使用grep和以下命令:
grep –E "^UID_MIN|^UID_MAX" /etc/login.defs
输出显示所有普通用户的 UID 介于 1000 (UID_MIN) 到 6000 (UID_MAX) 之间。

注意:根据系统的最小和最大 UID 值更改命令中的值。
如何列出普通用户
考虑到这些数字,你可以使用以下命令请求该范围内所有用户的列表:
getent passwd {10.6000}
该查询列出了所有普通用户,如下图所示。在本例中,指定范围内有两个普通用户。

转载请注明:XAMPP中文组官网 » 如何在linux中列出所有用户