使用我自己的python脚本向我的计算机进行身份验证

时间:2018-12-17 17:44:40

标签: python linux authentication pam

我尝试创建一个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'

2 个答案:

答案 0 :(得分:2)

首先-您不能将python代码用作PAM模块,必须将其编译为满足某些接口要求的代码。有关更多信息,请参见here

另外-您在这里尝试的事情似乎是循环的,使用PAM本身来实现PAM功能。

答案 1 :(得分:0)

您是否要

  1. 使用PAM在需要验证密码的python程序中检查密码,或者

  2. 是否为系统使用新的身份验证方法?

在情况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'

python-pam README

所示