Как программно (python) аутентифицировать имя пользователя / пароль с помощью пользователей ОС - PullRequest
6 голосов
/ 11 сентября 2011

Я пишу программу на Python, которая позволяет пользователю войти в нее. Я не хочу реализовывать свою собственную аутентификацию, а скорее воспользуюсь механизмом ОС (linux). То есть, когда пользователь пытается войти в мое приложение, введя пару имя пользователя / пароль (который должен быть действительным пользователем ОС), мне нужно аутентифицировать эту пару в ОС. Как это сделать ? Может потребоваться модуль подпроцесса, но я попробовал без удачи.

Ответы [ 2 ]

5 голосов
/ 11 сентября 2011

Попробуйте использовать PAM через Python PAM или аналогичный

2 голосов
/ 11 сентября 2011

Это может быть возможно, если ваш сценарий прочитает файлы /etc/passwd и /etc/shadow, которые содержат сведения об именах пользователей и паролях в системе Linux.Обратите внимание, что сценарий должен иметь доступ для чтения к файлам, что в зависимости от ситуации может или не может быть возможным.

Вот две хорошие статьи, объясняющие формат этих файлов, которые должны рассказать вам всевам нужно знать, чтобы ваш скрипт прочитал и понял их:

Кстати, когда речь идет о зашифрованном пароле , это означает, что он был зашифрован с использованием алгоритма DES.Возможно, вам потребуется использовать pyDes или другую реализацию Python алгоритма DES, чтобы ваш скрипт мог создать зашифрованный пароль, который можно сравнить с паролем в /etc/shadow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...