Подтвердите имя пользователя в Linux, используя PAM

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

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

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

1 ответ

Решение


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

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

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

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

Другие вопросы по тегам