以编程方式验证 Linux 登录名/密码

以编程方式验证 Linux 登录名/密码

我想验证用户名和密码是否与有效的 unix 帐户相对应。

我当前的解决方案是使用 expect 等待密码提示,然后提供密码并查看登录是否成功。

是否有可以验证登录/密码的内核 API 或用户空间函数。

我想我感到困惑的部分原因是我不确定这是否是一个内核空间服务?

答案1

您应该使用 pam。在 debian/ubuntu 上您可以:

apt-get install python-pam

简单代码Python pam测试

查看/usr/share/doc/python-pam/examples/pamtest.py文件。它非常简短,可以满足您的要求。

要测试它,请运行:

python /usr/share/doc/python-pam/examples/pamtest.py

还有一个例子C pam示例

测试一下:

gcc /usr/share/doc/python-pam/examples/pamexample.c -lpam -l pam_misc
./pam_misc theuser

答案2

答案3

要检查用户凭证是否良好,您可以尝试以他的身份登录:

su——用户名

但从长远来看,阅读有关 PAM 的文章可能是更好的选择

相关内容