Я пишу свой собственный модуль PAM, который будет частью приложения, которое я разрабатываю, но я точно не знаю, где его разместить. Мой модуль в основном выполняет аутентификацию на уровне сети (с другими моджами, конечно) аналогично LDAP.
В моем /etc/pam.d/
каталоге много конфигурационных файлов , и я знаю, что делает большинство сервисов (кроме пары, например, atd, polkit, ppp). Я предполагаю, что аутентификация со стеком PAM происходит примерно так:
- Запускает стек на основе имени службы (если файл конфигурации существует)
- Если не аутентифицировано, используйте common- *, где * - тип модуля (аутентификация, учетная запись и т. Д.)
- Вернуть успех или не вызвать вызывающее приложение (и любые другие данные, конечно)
Я прав в этом предположении? Все ли платформы имеют общую аутентификацию, общую учетную запись, общий пароль и общий сеанс?
Если это так, я думал о том, чтобы просто поместить его на вершину common- * в качестве sufficient
модуля, чтобы при сбое обычный стек PAM оставался без изменений. Это особенно полезно, потому что я могу сделать это программно при установке программного обеспечения.
Я пропускаю какие-либо потенциальные уязвимости безопасности?
Я не смог найти очень хорошую документацию о том, где интегрировать пользовательские модули PAM, или о проблемах безопасности, связанных с размещением модулей.