显然有一个函数(获取pwnam),给定用户名,将返回相应的条目以及/etc/passwd
该用户的其他详细信息(shell、uid、gid 等)。
但是,我不知道如何让该函数与影子密码文件(/etc/shadow
)一起使用。这可能吗?该应用程序将作为 运行root
。
答案1
影子密码文件的要点在于getpwnam
不从中返回密码。你需要看看man 3 shadow
和getspnam
尤其。
答案2
这是不可能的,原因有两个:
- 影子文件是现代系统中的一种身份验证方法。其中一些根本不涉及真实密码 - 如果用户通过指纹进行身份验证,应该返回什么?为什么它会破坏任何应用程序?
- 为非根应用程序提供散列字符串将启用离线攻击。
无论如何,它是特定于系统的文件,没有那么复杂的结构,因此如果您需要它,您可以编写自己的解析器。