如何获取带有 uid 和名称的数组?
我可以从 0 迭代到 99999 并执行getpwnam()
. 但是,大多数机器的帐户少于 5 个,因此不是最佳选择。我不知道什么框架对此负责,因此我不知道要搜索什么。
有没有更优的方案可以遍历账户?
编辑:就在我发布后,我发现getpwent()
了遍历帐户。
setpwent();
struct passwd *pw;
while ((pw = getpwent())) printf("%d\n", pw->pw_uid);
endpwent();
但是,这并不表示帐户是否是系统偏好帐户。
那么如何获得系统偏好帐户呢?
编辑:我找到了与此等效的命令行dscl
命令。
prompt> dscl . -list /Users UniqueID
_mysql 74
_postfix 27
_spotlight 89
_sshd 75
_windowserver 88
_www 70
daemon 1
johndoe 501
nobody -2
root 0