由于Linux是一个多用户操作系统,所以可能由多个用户组成。https://www.lenovocd.com/本文简单介绍了如何在Linux服务器系统中列出所有用户。在进入正题之前,我们先来看看什么是/etc/passwd文件。因为我们主要都要依赖这个文件。
关于/etc/passwd文件的简要说明
在Linux服务器(以及一般的Unix)中,每个用户账户的基本信息都存储在/etc/passwd 文件中。它只是一个纯文本文件,包含了Linux服务器系统中所有用户账户的属性。默认情况下,所有的用户都可以通过任何文本或图形程序,如Vi、Nano、Gedit等,或者使用 cat 等命令来读取这个文件。
如果你打开这个文件.....
$ cat /etc/passwd
/etc/ passwd文件中的每一行代表一个用户。root用户将在顶部列出。每行包含七个属性或由冒号分隔的字段,每个字段之间没有任何空格。七个字段的名称如下:
名称,
密码,
用户身份,
组ID,
gecos,
主目录,
shell.。
在“名称”字段是用户的登录名是您用来登录到你的Linux机器。
在“密码”字段只包含一个字母X.意义-密码被加密并存储在一个名为“/ etc / shadow的”为安全起见一个单独的文件。普通用户无法读取/ etc / shadow。这里的X表示用户具有密码。如果此字段为空,则用户没有密码,因此他可以不使用密码登录。
在“用户ID ”(或UID在短)指示用户的唯一数字标识号。根帐户的UID为0(零)。从1到99的数字保留给系统帐户使用。从100到999的数字保留给普通用户和组。
的“组ID”(或GID在短)指示标识的用户所属的主组。GID通常与UID相同。
该“gecos”字段包含用户的一般信息。例如,它可能包含用户的真实姓名。该文件可能为空,以两个冒号分隔,或者可能包含多个以逗号分隔的条目。
在“主目录”字段表示用户的主目录的完整路径,例如/home/sk。这是用户登录系统时首先进入的目录。主目录通常包含属于用户的程序和配置文件。
最后提交的是“ shell”。它指示该用户的默认外壳程序的完整路径。
现在,让我们以以下行为例:
root:x:0:0:root:/ root:/ bin / bash
在上面的行中
root –是用户名,
x –表示root用户具有密码,
0 –前0(零)表示UID,
0 –第二个零表示GID,
root –表示用户的真实姓名。
/ root –这是根用户的主目录,
/ bin / bash – root用户的默认外壳。
希望您对/ etc / passwd文件有一个基本的了解。现在让我们回到主题,即列出Linux系统中的所有用户。
列出Linux中的所有用户
有几种方法可以列出Linux系统中的所有用户。在这里,我包括了所有可能的方式。
1、cat命令
顾名思义,cat命令通常用于连接文件并打印文件内容。
要使用cut命令列出Linux系统中的所有用户,请运行:
$ cat / etc / passwd
此命令将列出所有可用的用户
正如我已经提到的,以上条目中的第一个字段代表用户。如果您不希望所有字段而是仅显示用户名,则以下方法会有所帮助。
2、Cut命令
“Cut”命令用于从文件的每一行中删除节(或字段)。
要在Linux系统中使用cut命令列出所有用户,请运行:
$ cut -d:-f1 / etc / passwd
此命令将仅显示/ etc / passwd文件中的用户名,而忽略所有其他字段。
3、AWK命令
我们还可以使用“ awk”命令列出Linux中的所有用户。
$ awk -F:{print $ 1}/ etc / passwd
此命令还将仅显示用户,并忽略所有其他详细信息。
4、Compgen命令
Compgen是BASH内置的,用于操纵可编程完成工具。
要列出所有使用compgen的用户,请运行:
$ compgen -u
5、Getent命令
在Linux中列出用户的另一种方法是使用“ getent”命令,如下所示:
$ getent passwd
该命令将读取/ etc / passwd文件并列出该文件中的所有用户。
getent命令的一个显着优点是,它不仅列出/etc/passwd文件中的用户,而且还列出了给定系统中所有配置的用户数据库后台的所有用户,例如LDAP。
6、“more”或“less”命令
more和less用于打开给定文件进行交互式阅读,从而允许滚动和搜索。
要使用more或less的命令打印所有用户,请运行:
$ more /etc/passwd
要么,
$ less /etc/passwd
成都联想代理www.lenovocd.com【公司名称】成都鸿盛广达科技有限公司
【代理级别】成都联想服务器总代理
【销售经理】成都鸿盛广达科技有限公司
【联系方式】座机:028-85952921 手机:13981931555
【公司地址】成都市武侯区人民南路四段一号时代数码广场A座17楼