Назад | Перейти на главную страницу

pam_exec.so Модуль PAM не экспортирует переменную PAM_USER, как указано в документации.

Я пытаюсь использовать pam_exec.so Модуль PAM для выполнения сценария, которому необходимо знать имя пользователя / пароль, исходящие от приложения (в данном случае OpenVPN).

У меня есть сценарий, который выполняет printenv >>afile, но я не вижу всех переменных среды, которые на страницах руководства указываются, которые экспортирует pam_exec.so (а именно PAM_USER, я думаю), я вижу только следующее:

PAM_SERVICE=openvpn
PAM_TYPE=auth
PWD=/usr/local/openvpn/bin
SHLVL=1
A__z="*SHLVL

Я успешно взял пароль от STDIN и вывел его с помощью того же сценария. Но хоть убей, я не могу получить имя пользователя.

Есть мысли о том, что мне попробовать дальше?

Если вы установите пары ключ-значение с помощью плагина "openvpn-plugin-auth-pam.so" следующим образом:

плагин /usr/lib/openvpn/openvpn-plugin-auth-pam.so "openvpn mykey myval login COMMONNAME"

тогда он не устанавливает PAM_USER (потому что он вызывает pam_start с user = NULL), может быть, это ваша проблема?

Какой дистрибутив вы используете? RHEL и CentOS используют pam 0.99. В настоящее время для этой проблемы открыта ошибка (https://bugzilla.redhat.com/show_bug.cgi?id=554518), но я считаю, что они просто используют старую версию PAM.