如何在 Linux 中列出所有用户

本简要指南介绍了如何列出 Linux 操作系统中的所有用户。 在进入主题之前,我们将了解 /etc/passwd 文件是什么。 因为我们在本指南中依赖此文件。

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

在 Linux(和一般的 Unix)中,每个用户帐户的基本信息存储在 “/etc/密码” 文件。 它只是一个纯文本文件,其中包含 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.壁虎

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

6.主目录

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

7. 壳牌

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

现在,让我们将以下行作为 example:

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

在上述行中,

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

希望您对 /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

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

4.在Linux中用awk命令打印用户

我们还可以使用“awk”命令列出 Linux 中的所有用户。

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

此命令还将仅显示用户并忽略所有其他详细信息。

使用 awk 命令在 Linux 中打印用户

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

5.用compgen查看用户列表

康普根 是内置的 BASH 来操作可编程完成设施。

要列出所有使用 compgen 的用户,请运行:

$ compgen -u

6.使用getent命令显示所有用户

在 Linux 中列出用户的另一种方法是使用 “得到” 命令如下:

$ getent passwd

此命令将读取 /etc/passwd 文件并列出该文件中的所有用户。

使用 getent 命令显示所有用户

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

getent 命令的一个显着优点是它不仅列出了 /etc/passwd 文件中的用户,而且列出了所有已配置的 userdb 后端中的所有用户,例如 example LDAP,在给定系统上。

7. 使用“更多”或“更少”命令列出用户

more 和 less 命令用于打开给定文件进行交互式阅读,允许滚动和搜索。

要使用 more 或 less 命令打印所有用户,请运行:

$ more /etc/passwd

或者,

$ less /etc/passwd

相关阅读:

  • 如何在 Linux 中列出组的成员
  • 如何在 Linux 中查找当前登录的用户
  • 如何在 Linux 中监控用户活动
  • 如何限制用户对 Linux 系统的访问
  • more、less 和 most 命令之间的区别
  • 如何在 Ubuntu 中添加、删除和授予用户 Sudo 权限
  • 如何在 Linux 中找出用户属于哪些组
  • 在 Linux 中编辑 /etc/passwd 和 /etc/group 文件的正确方法

希望这可以帮助。