Назад | Перейти на главную страницу

Программный способ проверки логина / пароля Linux

Я хочу, чтобы имя пользователя и пароль соответствовали действующей учетной записи unix.

Текущее решение, которое я использую, ожидает дождаться запроса пароля, а затем ввести пароль и посмотреть, удастся ли войти в систему.

Есть ли API ядра или функция пользовательского пространства, которая может проверять логин / пароль.

Я полагаю, что часть моего замешательства заключается в том, что я не уверен, что это служба пространства ядра?

Вам следует использовать pam. В debian / ubuntu вы можете:

apt-get install python-pam

Простой код в питон pamtest.py:

Увидеть /usr/share/doc/python-pam/examples/pamtest.py файл. Он действительно короткий и делает то, что вы хотите.

Чтобы проверить это, запустите:

python /usr/share/doc/python-pam/examples/pamtest.py

Также есть пример в C pamexample.c.

Чтобы проверить это:

gcc /usr/share/doc/python-pam/examples/pamexample.c -lpam -l pam_misc
./pam_misc theuser

чтобы проверить правильность учетных данных пользователя, вы можете попробовать войти в систему как он:

su - username

Но чтение о PAM может быть лучшим путем в долгосрочной перспективе.