如何列出Ubuntu的所有用户

5,213 阅读4分钟

Linux管理员可以轻松地与系统互动,并使用Linux系统中的有用命令管理所有用户。

Ubuntu是使用最广泛的Linux发行版,它为系统管理员提供了更多有用的功能,以列出所有用户并管理他们的日常任务。因此,管理员可以很容易地授予用户在文件或文件夹上的权限,并为每个用户分配有限的权限,以保证你的系统数据的安全。

我们将在本文中探讨如何使用命令行环境 列出Ubuntu Linux系统中的所有用户。本文中所有的命令都是在Ubuntu 20.04 LTS focal fossa上实现的。让我们深入了解一下细节

列出Ubuntu 20.04 LTS发行版中的所有用户

有以下两种方法可以列出Ubuntu系统中的所有用户。

  1. 通过显示/etc/passwd文件内容列出所有用户
  2. 通过使用getent命令列出所有用户

方法1:通过显示/etc/passwd文件内容列出所有用户

所有本地用户的详细信息都存储在"/etc/passwd "文件中。这个文件的每一行都包含一个本地用户的登录信息。 使用下面两个命令cat和less,用户可以查看'/etc/passwd'文件的内容。

使用 "cat "命令显示/etc/passwd的内容,使用以下语法。

$ cat /etc/passwd

同样,你可以使用'less'命令查看'/etc/passwd'文件的内容。

$ less /etc/passwd

在/etc/passwd'文件中,每一行由冒号分隔的字段组成。以下是每个用户的重要信息显示。

  1. 用户名称代表登录名。
  2. 这个字段代表加密的密码(x代表存储在'/etc/shadow'文件中的密码)。
  3. UID代表用户的识别号
  4. GID用于代表用户的组识别号
  5. 用户的全名(GECOS)
  6. 用户的主目录或主目录。
  7. 它代表'Login shell',默认设置为/bin/bash。

使用Awk和cut命令只显示用户名
有时,你只要求打印第一个字段或用户名。在这种情况下,两个有用的命令,'awk'和'cut',可以帮助你显示第一个字段,也就是终端上的用户名称。

在Ubuntu Linux系统中,"awk "是一个强大的文本处理工具,可以很容易地从/etc/passwd文件中获得唯一的第一个字段。显示第一个字段的'awk'命令的语法如下。

$ awk -F: '{ print $1}' /etc/passwd

你也可以使用'cut'命令来达到同样的目的,如下。

$ cut -d: -f1 /etc/passwd

以上两个命令只会在你的终端窗口显示所有的用户名。

方法2:使用getent命令列出所有Ubuntu用户

使用Linux的getent命令可以帮助你使用指定的搜索键从管理数据库中收集条目。

在Ubuntu系统中,getent命令从'/etc/nsswitch.conf f'文件中配置的数据库收集并显示条目。 用户可以通过使用passwd数据库来查询列出所有用户。因此,要打印Ubuntu的用户列表,请按以下方式使用'getent'命令。

$ getent passed

你也可以和getent命令一起使用'awk'和'cut'参数,只显示第一个字段,方法如下。

$ getent passwd | awk -F: ‘{ print $1}’

另外,为了显示同样的输出,你可以使用cut命令,如下所示。

$ getent passwd | cut -d: -f1

**使用getent命令搜索现有的Linux用户
**使用getent命令,你也可以找到Ubuntu Linux系统中是否存在一个用户。要查看Linux用户是否存在,请使用getent命令,同时使用grep,如下所示。

$ getent passwd | grep user-name

例如,我们想搜索一个用户名 "samreena",它是否存在于我们的系统中。上述内容将变为以下形式。

$ getent passwd | grep Samreena

如果指定的用户在你的Ubuntu系统中存在,那么,它将显示这个用户的登录信息。否则,如果没有这个名字的用户,它将不显示输出。

你也可以在不使用grep命令的情况下检查该用户是否存在,方法如下。

$ getent passwd user\_name  
$ getent passwd Samreena

显示Linux用户的账户总数
如果你想搜索你的Ubuntu系统上有多少账户,那么,你可以使用'getent passwd',然后使用'wc'命令,如下所示。

$ getent passwd | wc -l

如何区分普通用户和系统用户?

一个系统用户通常会创建普通用户。系统用户在你安装一个新的Ubuntu或其他Linux操作系统时创建。系统用户是一个根用户。你也可以创建一个系统用户来使用特定的应用程序。而普通用户是由拥有sudo权限的用户或根用户创建的。所以,每个普通用户和系统用户都有一个登录账户、主目录和用户ID(UID)号码,这些号码是使用'/etc/login.defs'文件在最小(UID_MIN)和最大(UID_MAX)范围内自动分配的。

检查最小(UID_MIN)和最大(UID_MAX)的限制
使用以下命令,可以检查正常用户在UID_MIN和UID_MAX之间的数值范围。

$ grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

上面的输出显示正常用户的UID在1000到60000之间。

列出Ubuntu中的正常用户
UID_MIN和UID_MAX帮助我们列出系统中的正常用户。所以,UID范围允许你查询Linux系统中正常用户的列表,如下所示。

$ getent passwd {1000..60000}

结语

你在这篇文章中学习了如何使用命令行应用程序列出所有Ubuntu或Linux用户。我们研究了如何搜索一个特定的用户以及普通用户和系统用户的区别。此外,我们还讨论了如何使用UID范围来列出普通用户。上述命令也可以适用于其他Linux发行版,如CentOS、Debian和LinuxMint,用于列出用户。