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

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

有一个简单的方法来获取所有的用户/组帐户信息。 (理想情况下,我想用Ansible来创build新账户,如果这有什么区别的话)。

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

然后,您可以将输出传输到其他程序/脚本以供进一步处理。

如何列出所有用户和组取决于如何configuration身份validation。

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

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

通常,除了 /etc/passwd/etc/group文件之外,还要configuration中央身份validation,以便通过名称服务交换机configuration文件/etc/nsswitch.conf在单用户模式下引导系统并使其可用

如果configuration了NSS:

 getent passwd 

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

 getent group 

将显示所有组

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