本简要指南介绍了如何列出 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.名称
这 “姓名” 字段是用于登录 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 中的所有用户
5.用compgen查看用户列表
康普根 是内置的 BASH 来操作可编程完成设施。
要列出所有使用 compgen 的用户,请运行:
$ compgen -u
6.使用getent命令显示所有用户
在 Linux 中列出用户的另一种方法是使用 “得到” 命令如下:
$ getent passwd
此命令将读取 /etc/passwd 文件并列出该文件中的所有用户。
使用 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 文件的正确方法
希望这可以帮助。