pam在哪里获取凭证信息?

时间:2018-04-28 02:28:45

标签: authentication pam

我正在学习如何编写一个使用pam进行身份验证的应用程序。 我检查了Linux文档和一些示例代码,现在我对/etc/pam.d/中的pam API和pam配置有了基本的了解。但我有一个问题是pam获取凭据信息进行身份验证。 例如:如果应用程序发送带有用户名“abc”和密码“XXXXX”的pam请求。 pam如何检查凭据信息以确定是否进行身份验证? 如果“abc”不是我的应用程序的有效用户,但我想将其添加为有效用户,我该怎样做才能使pam authenticatin成功?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我不知道我是否真的理解你的问题。 它取决于执行身份验证的模块。例如,如果您使用FeatureHasher,则将根据pam_unix.so/etc/passwd检查凭据。 有几个内置的身份验证模块,它们可以使用不同的方法来检查您的凭据。如果您想以自定义方式进行身份验证(内置模块未提供),则必须构建模块。

构建模块,您可以决定在身份验证过程的每个步骤中要做什么。例如,您可以决定接收用户凭据,根据数据库(可能在远程服务器中)对它们进行身份验证,也可以按照自己喜欢的方式添加新用户。

编写PAM模块非常简单,我已经写了一篇有关它的教程:

Writing a Linux PAM module

希望这会对您有所帮助。如果您对PAM身份验证过程还有其他疑问,我也写了本教程:

Writing a PAM application

How does PAM work