首頁 > 套件與系統管理 > getent

getent: 查詢名稱服務交換器 (NSS) 條目

getent 命令使用 Name Service Switch (NSS) 函式庫查詢各種系統資料庫(例如:使用者、群組、主機資訊)中的條目。這使得它能夠從本機檔案(如 /etc/passwd、/etc/group、/etc/hosts)以及 NSS 設定中定義的其他來源(如 NIS、LDAP)獲取資訊。

概述

getent 根據系統的 Name Service Switch (NSS) 設定,搜尋各種資料庫(如使用者、群組、主機)中的資訊。它不僅能從本機檔案(如 /etc/passwd、/etc/group)獲取資訊,還能從網路服務(如 NIS、LDAP)獲取資訊,這對於了解系統如何解釋和使用特定資訊非常有用。

主要特點

  • 根據 NSS 設定查詢各種資料來源
  • 搜尋使用者、群組、主機、服務等系統資訊
  • 支援本機檔案和網路服務 (NIS, LDAP)
  • 適用於系統資訊診斷和腳本應用

主要查詢資料庫

getent 可查詢的代表性資料庫類型。

  • passwd: 使用者帳戶資訊 (例如:/etc/passwd)
  • group: 群組資訊 (例如:/etc/group)
  • hosts: 主機名稱和 IP 位址資訊 (例如:/etc/hosts, DNS)
  • services: 網路服務和埠號 (例如:/etc/services)
  • protocols: 網路協定資訊 (例如:/etc/protocols)
  • networks: 網路名稱和位址資訊 (例如:/etc/networks)

主要選項

getent 命令主要使用資料庫名稱和查詢鍵作為參數,但也提供了一些有用的選項。

查詢控制

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`getent` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

使用 getent 命令查詢各種系統資訊的範例。

查詢所有使用者列表

getent passwd

顯示系統中註冊的所有使用者帳戶資訊。

查詢特定使用者資訊

getent passwd root

顯示指定使用者名稱(例如:'root')的帳戶資訊。

查詢所有群組列表

getent group

顯示系統中註冊的所有群組資訊。

查詢特定群組資訊

getent group sudo

顯示指定群組名稱(例如:'sudo')的資訊。

透過主機名稱查詢 IP 位址

getent hosts google.com

顯示指定主機名稱(例如:'google.com')的 IP 位址資訊。遵循 DNS 設定。

透過 IP 位址查詢主機名稱

getent hosts 8.8.8.8

反向查詢指定 IP 位址(例如:'8.8.8.8')的主機名稱資訊。

查詢特定服務的埠號

getent services ssh

顯示指定服務(例如:'ssh')的埠號和協定資訊。

僅從檔案查詢使用者資訊

getent -s files passwd

明確指定 NSS 來源為 'files',僅從本機檔案(如 /etc/passwd)查詢使用者資訊。

提示與注意事項

為了更有效地使用 getent 命令,這裡提供一些提示和注意事項。

理解 NSS 設定檔

getent 按照 `/etc/nsswitch.conf` 檔案中定義的順序查詢資料來源。理解此檔案對於了解系統如何搜尋資訊至關重要。例如,`passwd: files systemd` 表示先檢查本機檔案(`/etc/passwd`),然後再透過 `systemd` 服務尋找使用者資訊。

應用提示

  • **診斷網路問題:** 使用 `getent hosts` 可以診斷 DNS 或 NIS 設定問題。
  • **在腳本中驗證使用者/群組:** 在腳本中檢查特定使用者或群組是否存在於系統中時非常有用。
  • **與 `id` 命令的區別:** `id` 命令顯示當前登入使用者或指定使用者的 UID/GID 和所屬群組資訊,而 `getent passwd` 則透過 NSS 查詢系統中所有使用者帳戶的詳細資訊。

相同類別命令