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



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

首先 - 您不能将python代码用作PAM模块,必须是满足某些接口要求的代码。请参阅此处以获取更多信息。

另外 - 您在这里尝试的东西似乎是圆形的,使用PAM本身实现PAM功能。

您是否想

  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

所示

相关内容

最新更新