validationLinuxlogin名/密码的编程方式

我想validation一个用户名和密码对应一个有效的Unix帐户。

我使用的当前解决scheme期望等待密码提示,然后提供密码并查看login是否成功。

有一个内核API或用户空间函数可以validationlogin名/密码。

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

你应该用pam。 在debian / Ubuntu上你可以:

apt-get install python-pam 

python pamtest.py中的简单代码:

请参阅/usr/share/doc/python-pam/examples/pamtest.py文件。 这真的很短,做你想做的。

要testing它,运行:

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

C pamexample.c中也有一个例子。

testing它:

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

这是严格的用户空间 。

要检查用户凭据是否良好,可以尝试以他身份login:

 su  - 用户名

但从长远来看,读PAM可能是更好的途径