无法使用pam_set_item()在PAM模块中设置密码

时间:2018-01-30 08:52:36

标签: c linux pam

我创建了一个自定义PAM模块,使用我的自定义身份验证方法登录Linux。 我的模块完成身份验证后,它会从数据库中收到Linux用户帐户的实际用户名和密码(纯文本)。

现在我正在尝试使用以下方式设置用户名和密码:

在做pam_set_item(pamh, PAM_USER, user)后,

pam_set_item(pamh, PAM_AUTHTOK, passwd)pam_start("m_pamconf", user, &conv, &pamh)

" m_pamconf"是我的pam配置文件,其中包含:

auth    pam_unix.so nullok_secure  use_first_pass

使用此设置用户名已成功设置,但密码似乎无法正常工作,因为我收到了密码提示(如果它提供了我提供的密码,当然不应该这样做。)

感谢任何帮助。感谢。

我在使用try_first_pass标志时收到密码提示, 如果我改为使用use_first_pass,模块就会失败并在调试日志中出现以下错误:

auth could not identify password for [username]

这是我的/etc/pam.d/sudo:

#%PAM-1.0

# my pam test
auth    requisite       pam_test.so

session    required   pam_env.so readenv=1 user_readenv=0
session    required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
@include common-auth
@include common-account
@include common-session-noninteractive

第一行使用我创建的模块,我尝试通过pam_start("mypamd", user, &conv, &pamh)然后pam_authenticate(pamh, 0)使用pam_unix.so的auth方法来验证用户,如上所述& #34; m_pamconf"

0 个答案:

没有答案