Использование моего собственного скрипта Python для аутентификации на моем компьютере - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь создать скрипт python для проверки пароля вместо моего компьютера, поэтому я использую python-pam для этого.Проблема в том, что я не знаю, как я могу использовать свой скрипт в файле общей аутентификации.

Я пробовал это:

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 голосов
/ 18 декабря 2018

Пытаетесь ли вы

  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'

, как показано в README python-pam

0 голосов
/ 17 декабря 2018

Прежде всего - вы не можете использовать код Python в качестве модуля PAM, это должен быть скомпилированный код, который удовлетворяет определенным требованиям интерфейса.См. здесь для получения дополнительной информации.

Кроме того - то, что вы пытаетесь здесь, кажется круговым, с использованием самого PAM для реализации функциональности PAM.

...