获取所有用户帐户的简单方法

wob*_*col 3 user-management users

我正在迁移到新服务器,由于用户帐户不存在,我遇到了许多问题(例如,nginx 似乎在旧系统上的新系统 www-data 上的 nginx 用户下运行)。

有没有一种简单的方法来获取所有用户/组帐户信息。(理想情况下,如果有任何不同,我想用 Ansible 编写新帐户的创建脚本)。

HBr*_*ijn 8

如何列出所有用户和组取决于身份验证的配置方式。

最基本的是用于本地身份验证的/etc/passwd/etc/group文件。

当用户/组数据集中存储时,例如在 LDAP、NIS、Hesiod 等中,使用这些文件不足以获得完整的列表。

中央认证通常被配置除了/etc/passwd/etc/group文件,以允许该系统由名称服务转换器配置文件来启动采用单用户模式可行/etc/nsswitch.conf

如果配置了 NSS:

getent passwd 
Run Code Online (Sandbox Code Playgroud)

将显示所有用户帐户:来自/etc/passwd和您的中央用户目录的用户帐户

getent group 
Run Code Online (Sandbox Code Playgroud)

将显示所有组

通过监视getent命令的退出状态,您还将知道您是否确实列出了所有用户/组(退出代码0)或者您遗漏了一些(退出代码3表示不支持枚举的数据库,您需要使用该特定数据库的适当工具......)。