Я хочу, чтобы имя пользователя и пароль соответствовали действующей учетной записи 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 может быть лучшим путем в долгосрочной перспективе.