這個簡短的指南將向您展示如何列出 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.壁虎
這個 “壁虎” 字段包含有關用戶的一般信息。例如,它可能包括用戶的真實姓名。該字段可能是一個由兩個冒號分隔的空文件,也可能包含多個以逗號分隔的條目。
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
此命令僅顯示用戶並忽略所有其他詳細信息。
使用 awk 命令列出所有 Linux 用戶
5. 使用 compgen 顯示用戶列表。
健康 有一個內置的 BASH 來操作可編程完成功能。
要列出所有使用 compgen 的用戶,請運行:
$ compgen -u
6. 使用 getent 命令列出所有用戶。
在 Linux 中列出用戶的另一種方法是 “得到” 命令是:
$ getent passwd
此命令讀取 /etc/passwd 文件並列出該文件中的所有用戶。
使用 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 用戶