User-Management
獲取所有使用者帳戶的簡單方法
我正在遷移到新伺服器,由於使用者帳戶不存在,我遇到了許多問題(例如,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
表示數據庫不支持列舉,您需要使用該特定數據庫的適當工具…)。