我尝试创建一个python脚本而不是我的计算机来检查密码,因此我使用python-pam。问题是我不知道如何在common-auth文件中使用脚本。
我尝试过:
auth required /home/gamzer/test-python-pam.py
但这告诉我:
sudo: PAM unable to dlopen(/home/gamzer/test-python-pam.py): /home/gamzer/test-python-pam.py: invalid ELF header
这是我的剧本:
import pam
from getpass import getuser, getpass
if pam.authenticate(getuser(), getpass()):
print 'ok'
else:
print 'not ok'
答案 0 :(得分:2)
首先-您不能将python代码用作PAM模块,必须将其编译为满足某些接口要求的代码。有关更多信息,请参见here。
另外-您在这里尝试的事情似乎是循环的,使用PAM本身来实现PAM功能。
答案 1 :(得分:0)
您是否要
使用PAM在需要验证密码的python程序中检查密码,或者
是否为系统使用新的身份验证方法?
在情况2中,@ dngrs完全正确-您不能那样做。
在情况1中,common-auth
文件中不需要任何内容。另外,要检查Python代码中的密码,我认为您需要创建一个PAM对象,因此看起来更像这样:
import pam
from getpass import getuser, getpass
p = pam.pam()
if p.authenticate(getuser(), getpass()):
print 'ok'
else:
print 'not ok'
所示