Linux中國

6 個簡單的方式來查看 Linux 中的用戶名和其它信息

這是一個非常基礎的話題,在 Linux 中,每個人都知道如何使用 id 來查找用戶信息。一些用戶也從 /etc/passwd 文件中過濾用戶信息。

我們還使用其它命令來獲取用戶信息。

你可能會問,為什麼要討論這個基礎話題呢?即使我也這麼認為,因為除了這兩個之外沒有更好的方法了,但是我們也有一些不錯的選擇。

與這兩者相比,那些命令提供了更詳細的信息,這對於新手非常有幫助。

這是幫助管理員在 Linux 中查找用戶信息的基本命令之一。Linux 中的一切都是文件,甚至用戶信息都存儲在一個文件中。

建議閱讀:

所有用戶都被添加在 /etc/passwd 文件中,這裡保留了用戶名和其它相關詳細信息。在 Linux 中創建用戶時,用戶詳細信息將存儲在 /etc/passwd 文件中。passwd 文件將每個用戶詳細信息保存為一行,包含 7 欄位。

我們可以使用以下 6 種方法來查看用戶信息。

  • id:為指定的用戶名列印用戶和組信息。
  • getent:從 Name Service Switch 庫中獲取條目。
  • /etc/passwd: 文件包含每個用戶的詳細信息,每個用戶詳情是一行,包含 7 個欄位。
  • finger:用戶信息查詢程序
  • lslogins:顯示系統中已有用戶的信息
  • compgen:是 bash 內置命令,它將顯示用戶的所有可用命令。

1) 使用 id 命令

id 代表 身份 identity 。它輸出真實有效的用戶和組 ID。也可以輸出指定用戶或當前用戶的用戶和組信息。

# id daygeek
uid=1000(daygeek) gid=1000(daygeek) groups=1000(daygeek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare)

下面是上述輸出的詳細信息:

  • uid (1000/daygeek): 它顯示用戶 ID 和用戶名
  • gid (1000/daygeek): 它顯示用戶的組 ID 和名稱
  • groups: 它顯示用戶的附加組 ID 和名稱

2) 使用 getent 命令

getent 命令顯示 Name Service Switch 庫支持的資料庫中的條目,這些庫在 /etc/nsswitch.conf 中配置。

getent 命令會顯示類似於 /etc/passwd 文件的用戶詳情,它將每個用戶的詳細信息放在一行,包含 7 個欄位。

# getent passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/bin/bash
thanu:x:503:504:2g Editor - Thanisha M:/home/thanu:/bin/bash
sudha:x:504:505:2g Editor - Sudha M:/home/sudha:/bin/bash

下面是關於 7 個欄位的詳細信息:

magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/bin/bash
  • Username (magesh): 已創建的用戶名。字元長度應該在 1 到 32 之間。
  • Password (x): 它表明加密密碼存儲在 /etc/shadow 文件中。
  • User ID (UID-502): 它表示用戶 ID(UID),每個用戶應包含唯一的 UID。UID (0-Zero) 保留給 root,UID(1-99)是為系統用戶保留的,UID(100-999)是為系統賬戶/組保留的。
  • Group ID (GID-503): 它表示組 ID(GID),每個組應該包含唯一的 GID,它存儲在 /etc/group 文件中。
  • User ID Info (2g Admin - Magesh M): 它表示命令欄位。這個欄位可用於描述用戶信息。
  • Home Directory (/home/magesh): 它表示用戶家目錄。
  • shell (/bin/bash): 它表示用戶的 bash shell。

如果你只想在 getent 命令的輸出中顯示用戶名,使用以下命令格式:

# getent passwd | cut -d: -f1
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
uucp
operator
games
gopher
magesh
thanu
sudha

只顯示用戶的家目錄,使用以下命令格式:

# getent passwd | grep '/home' | cut -d: -f1
centos
prakash
magesh
thanu
sudha

3) 使用 /etc/passwd 文件

/etc/passwd 是一個文本文件,它包含每個用戶登錄 Linux 系統所必需的的信息。它維護用戶的有用信息,如用戶名,密碼,用戶 ID,組 ID,用戶 ID 信息,家目錄和 shell。/etc/passwd 文件將每個用戶詳細信息放在一行中,包含 7 個欄位,如下所示:

# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/bin/bash
thanu:x:503:504:2g Editor - Thanisha M:/home/thanu:/bin/bash
sudha:x:504:505:2g Editor - Sudha M:/home/sudha:/bin/bash

以下是 7 個欄位的詳細信息。

magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/bin/bash

欄位信息同上。

如果你只想顯示 /etc/passwd 文件中的用戶名,使用以下格式:

# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
uucp
operator
games
gopher
magesh
thanu
sudha

只顯示用戶的家目錄,使用以下格式:

# cat /etc/passwd | grep '/home' | cut -d: -f1
centos
prakash
magesh
thanu
sudha

4) 使用 finger 命令

finger 命令顯示有關係統用戶的信息。它顯示用戶的真實姓名,終端名稱和寫入狀態(如果沒有寫入許可權,那麼最為終端名稱後面的 *),空閑時間和登錄時間。

# finger magesh
Login: magesh Name: 2g Admin - Magesh M
Directory: /home/magesh Shell: /bin/bash
Last login Tue Jul 17 22:46 (EDT) on pts/2 from 103.5.134.167
No mail.
No Plan.

以下是上述輸出的詳細信息:

  • Login: 用戶名
  • Name: 附加/有關用戶的其它信息
  • Directory: 用戶家目錄的信息
  • Shell: 用戶的 shell 信息
  • LAST-LOGIN: 上次登錄日期和其它信息

5) 使用 lslogins 命令

它顯示系統已知用戶的信息。默認情況下,它將列出系統中所有用戶的信息。

lslogins 使用程序的靈感來自於 logins 實用程序,該實用程序最初出現在 FreeBSD 4.10 中。

# lslogins -u
UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS
 0 root 0 0 00:17:28 root
500 centos 0 1 Cloud User
501 prakash 0 0 Apr12/04:08 2018/04/12
502 magesh 0 0 Jul17/22:46 2g Admin - Magesh M
503 thanu 0 0 Jul18/00:40 2g Editor - Thanisha M
504 sudha 0 0 Jul18/01:18 2g Editor - Sudha M

以下是上述輸出的詳細信息:

  • UID: 用戶 id
  • USER: 用戶名
  • PWD-LOCK: 密碼已設置,但是已鎖定
  • PWD-DENY: 登錄密碼是否禁用
  • LAST-LOGIN: 上次登錄日期
  • GECOS: 有關用戶的其它信息

6) 使用 compgen 命令

compgen 是 bash 內置命令,它將顯示所有可用的命令,別名和函數。(LCTT 譯註:它的 -u 參數可以列出系統中用戶。)

# compgen -u
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
uucp
operator
games
gopher
magesh
thanu
sudha

via: https://www.2daygeek.com/6-easy-ways-to-check-user-name-and-other-information-in-linux/

作者:Prakash Subramanian 選題:lujun9972 譯者:MjSeven 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國