PAM:如何更改别人的密码?

时间:2012-02-16 00:41:21

标签: c linux authentication pam change-password

重置用户密码需要拨打哪些PAM电话?我无法理解。

背景:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

当然,这会让您的整个系统面临很大的风险,特别是如果您还不熟悉这些问题(从您的问题中可以清楚地了解到这一点),那么我会考虑这个功能是否必要,如果是的话,你是否应聘请专家来处理它。