Проверка имени пользователя в Linux с помощью PAM

Я знаю, что было много вопросов относительно схем аутентификации с использованием PAM в Linux, и у меня также есть рабочая копия для аутентификации по имени пользователя/паролю.

Я хочу знать, можем ли мы проверить «просто» только имя пользователя... учитывая, что я даже не создаю пароль, когда создаю этого конкретного пользователя в Linux. Если да, дайте мне знать, как это сделать. Несколько фрагментов кода было бы действительно здорово. Спасибо!

P.S. Прямо сейчас я аутентифицируюсь, передавая значения через строки (каждое для имени пользователя и пароля)


person GordonFreeman    schedule 06.04.2015    source источник


Ответы (2)



Это то, что я понял, простой метод, и он может отличаться от чьей-либо логики.

- Возьмите только это "имя пользователя" и попытайтесь создать пользователя, используя собственный системный вызов Linux.
- Если создание пользователя прошло успешно --> пользователь никогда не существовал (это решает мою проблему создания пользователя без пароля).
- Если создать пользователя не удалось --> пользователь уже существует и не создается. Система вернет это, и вы должны получить возвращаемое значение, чтобы перейти к следующему шагу вашей программы).

Дайте мне знать, если это можно сделать более изысканным.

person GordonFreeman    schedule 04.05.2015

Вы можете использовать pam_securetty, который проверяет, равен ли идентификатор пользователя 0, если пользователь не существует - эта проверка завершается ошибкой и, следовательно, проверяет имя пользователя. Добавить в /etc/pam.d/login auth require pam_securetty.so

person lidor    schedule 29.12.2018