Использование моего собственного скрипта Python для аутентификации на моем компьютере
Я пытаюсь создать скрипт 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 ответа
Прежде всего - вы не можете использовать код Python в качестве модуля PAM, это должен быть скомпилированный код, который удовлетворяет определенным требованиям интерфейса. Смотрите здесь для получения дополнительной информации.
Кроме того - то, что вы пытаетесь здесь, кажется круговым, используя сам PAM для реализации функциональности PAM.
Вы пытаетесь
используйте 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'
как показано в README Python-PAM