Python Unix身份验证

时间:2011-01-03 19:03:59

标签: python unix authentication pam

我需要对主机和NIS上的用户名进行简单的身份验证。 我用Python编写这段代码 我尝试使用PAM进行身份验证。为此,我下载了一个名为Python Pam的Python模块。

我使用的代码:

import pam   
pam.authenticate('root',<password>,<service>)

其中<service>是我在/etc/pam.d/中创建的配置文件
该文件包含以下代码

#%PAM-1.0
auth     requisite      pam_unix.so

此代码适用于某些主机提供正确答案,但不适用于其他主机 即使我使用login或sshd替换<service>,如

pam.authenticate('root',<password>,'sshd')

对于某些主机上的正确密码,它仍然返回False。

所以有人知道为什么这不起作用。我不需要使用pam或任何模块。在unix中是否有任何可以从Python调用的命令,它只能验证用户名?并且最好适用于所有基于Unix的系统,包括Linux,Solaris,HP-UX,AIX。
感谢

2 个答案:

答案 0 :(得分:1)

两者

 pam.authenticate('myusername', 'mypassword', 'sshd')

 pam.authenticate('myusername', 'mypassword')

登录在我的机器上运行正常。 pam模块的文档几乎不存在,因此如果您正确配置了服务,我很难说。

答案 1 :(得分:1)

答案就在于您创建的/etc/pam.d/文件中的第三个参数。

在不起作用的计算机上尝试此命令。是的,你必须是root或sudoer root。

# ldconfig -v |grep pam_unix.so

很可能符号链接不会导致来自pam_unix.so的真正的pam共享库。添加它或将配置文件参数更改为ld可用于查找链接的内容。

相关问题