這個簡短的指南將向您展示如何列出 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/密碼” 文檔。這只是一個純文本文件,其中包含 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 用戶的主目錄。
  • /bin/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

使用 cut 命令列出所有 Linux 用戶

4. 在 Linux 中使用 awk 命令查看用戶。

您還可以使用“awk”命令列出所有 Linux 用戶。

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

此命令僅顯示用戶並忽略所有其他詳細信息。

在 Linux 上使用 awk 命令打印用戶

使用 awk 命令列出所有 Linux 用戶

5. 使用 compgen 顯示用戶列表。

健康 有一個內置的 BASH 來操作可編程完成功能。

要列出所有使用 compgen 的用戶,請運行:

$ compgen -u

6. 使用 getent 命令列出所有用戶。

在 Linux 中列出用戶的另一種方法是 “得到” 命令是:

$ getent passwd

此命令讀取 /etc/passwd 文件並列出該文件中的所有用戶。

使用 getent 命令顯示所有用戶

使用 awk 命令列出所有 Linux 用戶

getent 命令的一個重要好處是它列出了給定係統上配置的所有 userdb 後端(例如 LDAP)中的所有用戶,而不僅僅是 /etc/passwd 文件中的用戶。

7.使用’more’或’less’命令列出用戶

您可以使用 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 文件的正確方法

希望這可以幫助。

LinuxLinux 管理Linux 基礎Linux 命令Linux 方法Linux 用戶管理列出Linux 用戶