Python Unix аутентификация - PullRequest
       10

Python Unix аутентификация

2 голосов
/ 03 января 2011

Мне нужно сделать простую аутентификацию имени пользователя на хосте и NIS. Я пишу этот код на Python.
Я пытался использовать PAM для проверки подлинности. Для этого я скачал модуль Python под названием Python Pam.

Код, который я использую:

import pam   
pam.authenticate('root',<password>,<service>)

где <service> - это файл конфигурации, который я создал в /etc/pam.d/
файл содержит следующий код

#%PAM-1.0
auth     requisite      pam_unix.so

Этот код работает на некоторых хостах, дающих правильный ответ, но не на других
Даже если я заменил <service> на логин или sshd как в

pam.authenticate('root',<password>,'sshd')

Он по-прежнему возвращает False для правильного пароля на определенных хостах.

Так кто-нибудь знает, почему это не работает. Мне не нужно использовать PAM или любой модуль. Есть ли какая-нибудь команда в unix, которую я могу вызвать из Python, которая бы просто аутентифицировала имя пользователя? и желательно работать на всех Unix-системах, включая Linux, Solaris, HP-UX, AIX.
Спасибо

Ответы [ 2 ]

1 голос
/ 23 августа 2012

Ответ на этот вопрос находится в третьем параметре в файле /etc/pam.d/, который вы создали.

Попробуйте эту команду на машинах, где она не работает. Да, вы должны быть root или sudoer root.

# ldconfig -v |grep pam_unix.so

Скорее всего, символическая ссылка не ведет к реальной общей библиотеке pam из pam_unix.so. Добавьте его или измените параметр файла конфигурации на то, что ld может использовать для поиска ссылки.

1 голос
/ 03 января 2011

Оба

 pam.authenticate('myusername', 'mypassword', 'sshd')

и

 pam.authenticate('myusername', 'mypassword')

Вход в систему на моем компьютере работает нормально.Документация для модуля pam практически отсутствует, поэтому мне сложно сказать, правильно ли вы настроили свой сервис.

...