用户是 Linux 系统中最重要的组成部分。 Linux 向管理员提供内置命令,使他们能够有效地管理用户。 有一个用于创建用户、删除用户和更改用户权限。 但是如果列出系统上当前存在的所有用户呢?
在本文中,我们将讨论如何获取 Linux 中所有用户的列表,以及检查系统上是否存在用户的简要指南。
如何在 Linux 中显示所有用户的列表
创建新用户时,用户名、密码和其他详细信息存储在 Linux 机器上的特定文件中。 幸运的是,Linux 允许您不受任何限制地读取和修改此类文件。 使用这些文件,您可以了解与用户相关的信息,例如用户名、用户数等。
使用密码文件
这 密码 file 是一个文本文件,其中包含系统中当前存在的所有用户的密码记录。 该文件位于 /ETC 本地存储中的目录并包含以下信息:
- 用户名
- 加密密码
- 用户身份
- 用户组 ID
- 全名
- 这 /家 用户目录
- 用户的登录外壳
类型 猫 /etc/passwd 或者 少 /etc/passwd 在您的终端中读取文本文件。 打开 /etc/passwd 文件将生成一个看起来像这样的输出。
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
上述输出包含七个字段,其中包含与用户相关的信息。 这些字段由分隔符分隔——在本例中为冒号。 输出中的每一行表示一个用户。
在 密码 文件:
awk -F: '{ print $1}' /etc/passwd
awk 是一个命令行实用程序,它允许 Linux 用户创建简单的“单行”程序,从终端执行快速操作。 在上述代码中:
- -F 代表字段分隔符。 由于冒号字符是 /etc/passwd 文件,我们在 awk 命令中传递冒号作为分隔符。
- {打印$1} 指示系统打印第一个字段。 在这种情况下,第一个字段是用户的用户名。
- /etc/passwd 文件包含与用户相关的数据。
执行上述命令将输出所有用户的用户名。 由于 /etc/passwd 文件包含系统用户,输出也将包括他们的用户名。
root
daemon
bin
sys
sync
games
man
您可以稍微调整 awk 命令以打印用户的全名。 键入以下命令以显示 Linux 中用户的全名:
awk -F: '{ print $5}' /etc/passwd
由于系统用户具有相同的用户名和全名,因此您不会注意到输出有任何差异。 只有您添加到系统中的用户才会有不同的用户名和全名。
或者,您也可以使用 切 而不是 awk 命令。 cut 的语法与 awk 命令非常相似。
在 Linux 中使用 cut 打印用户名:
cut -d: f1 /etc/passwd
这里, -d 是分隔符, f1 表示第一个字段(用户名),并且 /etc/passwd 是包含数据的文本文件。
使用 cut 打印用户的名字:
cut -d: f5 /etc/passwd
同样,您可以从 /etc/passwd 通过简单地替换文件 f5 和 f1-f7.
使用 getent 命令列出用户
getent 命令打印作为系统数据库的重要文本文件的内容。 文件如 /etc/passwd 和 /etc/nsswitch.conf 分别包含与用户和网络相关的信息,可以使用 getent 命令读取。
打印内容 /etc/passwd 使用 getent 的文件:
getent passwd
输出将包含由冒号字符分隔的七个不同字段。 每个字段都保留用于特定信息,包括用户的用户名和主目录路径。
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
您可以将 getent 命令与 awk 或 cut 链接以仅获取用户名列表。
getent passwd | awk -F: '{print $1}'
getent passwd | cut -d: -f1
要打印用户的全名:
getent passwd | awk -F: '{print $5}'
getent passwd | cut -d: -f5
检查用户是否存在
在某些情况下,您可能想要检查您的 Linux 系统上是否存在用户。 这 grep 当您想从文件中获取特定的文本模式时,命令会派上用场。
您可以使用以下任何命令来检查用户的存在。
compgen -u | grep username
getent passwd | grep username
如果用户存在,则与他们关联的登录信息将显示在屏幕上。 另一方面,如果用户不在系统中,则会发生错误。
在不使用 grep 的情况下检查系统上是否存在用户:
getent passwd username
您也可以通过管道 获得性 或者 补偿 命令与 grep 和 回声 显示自定义输出。
getent passwd | grep -q username && echo "User found" || echo "User not found"
compgen -u | grep -q username && echo "User found" || echo "User not found"
如果系统上存在用户,上面的命令将打印“用户找到”,如果不存在,则打印“用户未找到”。
计算系统上的用户数
要计算 Linux 系统上存在的用户数:
compgen -u | wc -l
getent passwd | wc -l
在上述命令中, 补偿 和 获得性 负责显示包含所有用户和与他们相关的其他信息的列表。 这 厕所 代表字数,用于计算输出中的字数或行数。 这 -l 标志表示 线条.
在 Linux 中验证用户帐户
每个 Linux 管理员都应该知道如何管理和管理系统上的其他用户。 掌握允许您创建、删除、控制和列出其他用户的 Linux 命令是开始用户管理的好方法。
如果您只是初学者,那么熟悉 Linux 环境应该是您的首要目标。 在安装您的第一个 Linux 发行版后,您必须立即执行某些操作。 学习一些基本命令就是其中之一,对于在 Linux 上执行简单的计算任务至关重要。