我想验证用户名和密码是否与有效的 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 的文章可能是更好的选择