如何在 Linux 中列出所有用户

这个简短的指南解释了如何在 Linux 操作系统中列出所有用户。 在进入正题之前,我们先看看什么是/etc/passwd文件。 因为我们在整个指南中都依赖于这个文件。

内容

  1. 关于 /etc/passwd 文件的简要说明
  2. 列出 Linux 中的所有用户
    1. 1.使用cat命令列出Linux中的所有用户
    2. 3.使用cut命令列出用户
    3. 4、Linux下用awk命令打印用户
    4. 5.使用compgen查看用户列表
    5. 6.使用getent命令显示所有用户
    6. 7. 使用“more”或“less”命令列出用户

关于 /etc/passwd 文件的简要说明

在 Linux(以及一般的 Unix)中,每个用户帐户的基本信息都存储在 “/etc/passwd” 文件。 它只不过是一个纯文本文件,其中包含 Linux 系统中存在的所有用户帐户的属性。

默认情况下,所有用户都可以在任何文本或图形程序(例如 Vi、Nano、Gedit 等)或类似命令的帮助下读取此文件 “猫”。

如果你打开这个文件..

$ cat /etc/passwd

…您将看到如下几个条目:

root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin [...]

/etc/passwd 文件中的每一行代表一个用户。 root 用户将列在顶部。 每行包含七个属性或字段,由冒号分隔,每个字段之间没有任何空格。 七个字段的名称如下:

  1. 名称,
  2. 密码,
  3. 用户身份,
  4. 组标识,
  5. 杰科斯,
  6. 主目录,
  7. 壳。

1. 姓名

“名称” 字段是您用于登录 Linux 机器的用户登录名。

2. 密码

“密码” 字段仅包含一个字母 X。 含义 – 出于安全目的,密码被加密并存储在名为“/etc/shadow”的单独文件中。 普通用户无法读取/etc/shadow。 这里的 X 表示用户有密码。 如果此字段为空,则用户没有密码,因此无需密码即可登录。

3. 用户名

“用户身份“(或简称UID)表示用户唯一的数字标识号。root账户的UID为0(零)。1到99的数字是为系统账户保留的。100到999的数字是为普通用户保留的,组。

4.组ID

“组标识” (或简称 GID)表示用户所属的主要组标识符。 GID 通常与 UID 相同。

5.壁虎

“壁虎” 字段包含用户的一般信息。 例如,它可能包含用户的真实姓名。 该字段可能是由两个冒号分隔的空文件,也可能包含多个由逗号分隔的条目。

6.主目录

“主目录” 字段表示用户主目录的完整路径,例如 /家/sk. 这是用户登录系统时首先进入的目录。 主目录通常包含属于用户的程序和配置文件。

7.壳

最后提交的是 “壳”. 它指示该用户的默认 shell 的完整路径。

现在,让我们以下面这行代码为例:

root:x:0:0:root:/root:/bin/bash

在上面的行中,

  • – 是用户名,
  • X – 表示 root 用户有密码,
  • 0 – 第一个 0(零)表示 UID,
  • 0 – 第二个零表示 GID,
  • – 显示用户的真实姓名。
  • /根 – 它是root用户的主目录,
  • /斌/bash – root 用户的默认 shell。

希望您对 /etc/passwd 文件有一个基本的了解。 现在让我们回到我们的主题,即列出 Linux 系统中的所有用户。

列出 Linux 中的所有用户

有几种方法可以列出 Linux 系统中的所有用户。 在这里,我包括了所有可能的方法。

1.使用cat命令列出Linux中的所有用户

顾名思义,cat 命令通常用于连接文件并打印文件的内容。

要使用 cut 命令列出 Linux 系统中的所有用户,请运行:

$ cat /etc/passwd

此命令将列出所有可用用户

示例输出:

root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin systemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin syslog:x:102:106::/home/syslog:/usr/sbin/nologin messagebus:x:103:107::/nonexistent:/usr/sbin/nologin _apt:x:104:65534::/nonexistent:/usr/sbin/nologin uuidd:x:105:111::/run/uuidd:/usr/sbin/nologin avahi-autoipd:x:106:112:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin usbmux:x:107:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin dnsmasq:x:108:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin rtkit:x:109:114:RealtimeKit,,,:/proc:/usr/sbin/nologin cups-pk-helper:x:110:116:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin speech-dispatcher:x:111:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/false whoopsie:x:112:117::/nonexistent:/bin/false kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin saned:x:114:119::/var/lib/saned:/usr/sbin/nologin avahi:x:116:122:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/usr/sbin/nologin colord:x:117:123:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin hplip:x:118:7:HPLIP system user,,,:/var/run/hplip:/bin/false geoclue:x:119:124::/var/lib/geoclue:/usr/sbin/nologin gnome-initial-setup:x:120:65534::/run/gnome-initial-setup/:/bin/false gdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/false sk:x:1000:1000:sk,,,:/home/sk:/bin/bash Debian-exim:x:122:128::/var/spool/exim4:/usr/sbin/nologin pulse:x:115:120:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin systemd-timesync:x:123:127:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin tss:x:124:131:TPM software stack,,,:/var/lib/tpm:/bin/false tcpdump:x:125:132::/nonexistent:/usr/sbin/nologin _flatpak:x:126:133:Flatpak system-wide installation helper,,,:/nonexistent:/usr/sbin/nologin systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin

使用 cat 命令列出 Linux 中的所有用户

正如我已经提到的,上述条目中的第一个字段代表用户。 如果您不想要所有字段而只显示用户名,以下方法会有所帮助。

3.使用cut命令列出用户

“cut”命令用于从文件的每一行中删除部分(或字段)。

要在 Linux 系统中使用 cut 命令列出所有用户,请运行:

$ cut -d: -f1 /etc/passwd

此命令将仅显示 /etc/passwd 文件中的用户名并忽略所有其他字段。

示例输出:

root daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody systemd-network systemd-resolve syslog messagebus _apt uuidd avahi-autoipd usbmux dnsmasq rtkit cups-pk-helper speech-dispatcher whoopsie kernoops saned avahi colord hplip geoclue gnome-initial-setup gdm sk Debian-exim pulse systemd-timesync tss tcpdump _flatpak systemd-coredump