我创建了一个自定义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"