User-Management

獲取所有使用者帳戶的簡單方法

  • April 22, 2016

我正在遷移到新伺服器,由於使用者帳戶不存在,我遇到了許多問題(例如,nginx 似乎在舊系統上的新系統 www-data 上的 nginx 使用者下執行)。

有沒有一種簡單的方法來獲取所有使用者/組帳戶資訊。(理想情況下,如果這有什麼不同,我想用 Ansible 編寫新帳戶的創建腳本)。

cat /etc/passwd  # show all users
cat /etc/group   # show all groups

然後,您可以將輸出通過管道傳輸到其他程序/腳本以進行進一步處理。

如何列出所有使用者和組取決於身份驗證的配置方式。

最基本的是用於本地身份驗證的/etc/passwd和文件。/etc/group

當使用者/組數據集中儲存時,例如在 LDAP、NIS、Hesiod 等中,使用這些文件不足以獲得完整的列表。

除了/etc/passwd和文件之外,通常還配置中央身份驗證,/etc/group以允許系統通過名稱服務切換配置文件在單使用者模式下啟動和執行/etc/nsswitch.conf

如果配置了 NSS:

getent passwd 

將顯示所有使用者帳戶:來自/etc/passwd您的中央使用者目錄的那些。

getent group 

將顯示所有組

通過監視getent命令的退出狀態,您還將知道您是否確實列出了所有使用者/組(退出程式碼0)或者您缺少一些(退出程式碼3表示數據庫不支持列舉,您需要使用該特定數據庫的適當工具…)。

引用自:https://serverfault.com/questions/772183