0

我必须拨打什么 PAM 电话来重置用户的密码?我想不明白。

背景:

我正在开发嵌入式 linux 设备。客户安装此设备并创建用户帐户。如果其中一个二级用户帐户被锁定,或者用户忘记了密码,我们需要一种方法,让用户 #1 可以重置用户 #2 的密码。我们对 PAM 的转换是新的,我现在正在切换到它。以下是我为验证用户而进行的调用:

pam_start();
pam_authenticate();
pam_acct_mgmt();
pam_end();

我看到pam_chauthtok()更改我自己的密码,我不明白是否 - 或如何?-- 我可以使用它或其他类似的调用来为另一个用户帐户分配新密码。

4

1 回答 1

1

拥有单独用户的全部意义在于他们不能做诸如更改彼此密码之类的事情。要使用 PAM 更改用户的密码,您需要成为该用户。最简单的方法是使用 setuid-root 二进制文件或以 root 身份运行的守护程序,它调用setuid等 成为所需的用户,然后执行更改密码的操作。

当然,这会使您的整个系统面临很大的风险,尤其是如果您还没有熟练掌握这些问题(从您的问题中可以清楚地看出),所以我会三思而后行是否需要此功能,如果需要的话,是否应该聘请专家来处理。

于 2012-02-16T02:32:17.403 回答