Где Пэм получает учетные данные? - PullRequest
0 голосов
/ 28 апреля 2018

Я учусь писать прикладную программу, использующую pam для аутентификации. Я проверил документы Linux и некоторые примеры кодов, теперь у меня есть общее представление об API pam и конфигурации pam в /etc/pam.d/. Но у меня есть вопрос, где Пэм получает учетные данные для аутентификации. Например: если приложение отправляет запрос pam с именем пользователя "abc" и паролем "XXXXX". Как Пэм проверяет информацию о полномочиях, чтобы определить, аутентифицироваться или нет? Если «abc» не является допустимым пользователем для моего приложения, но я хочу добавить его в качестве действительного пользователя, как мне сделать, чтобы аутентификация pam прошла успешно?

Заранее спасибо.

1 Ответ

0 голосов
/ 14 декабря 2018

Не знаю, правильно ли я понял твой вопрос. Это зависит от модуля, который выполняет аутентификацию. Например, если вы используете pam_unix.so, учетные данные сверяются с /etc/passwd и /etc/shadow. Существует несколько встроенных модулей для проверки подлинности, и они могут использовать различные методы для проверки ваших учетных данных. Если вы хотите сделать аутентификацию нестандартным способом (не предусмотрено встроенными модулями), вам нужно собрать свой модуль.

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

Написание модуля PAM довольно просто, я написал об этом учебник:

Написание модуля Linux PAM

Надеюсь, это поможет вам. Если у вас есть другие сомнения по поводу процесса аутентификации PAM, я написал также следующие уроки:

Написание PAM-приложения

Как работает PAM

...