pam_exec.so PAM 模块没有导出文档中所述的变量 PAM_USER

pam_exec.so PAM 模块没有导出文档中所述的变量 PAM_USER

我正在尝试使用pam_exec.soPAM 模块执行一个脚本,该脚本需要知道来自应用程序(在本例中为 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 中获取了密码,并用相同的脚本将其输出。但我无论如何都无法获取用户名。

有什么想法我下一步应该尝试什么吗?

答案1

如果您使用插件“openvpn-plugin-auth-pam.so”设置键值对,如下所示:

插件 /usr/lib/openvpn/openvpn-plugin-auth-pam.so “openvpn mykey myval login COMMONNAME”

那么它没有设置 PAM_USER(因为它使用 user=NULL 调用 pam_start),也许这是你的问题?

答案2

您使用的是什么发行版?RHEL 和 CentOS 使用 pam 0.99。目前此问题有一个未解决的错误 (https://bugzilla.redhat.com/show_bug.cgi?id=554518),但我相信他们只是使用了 PAM 的古老版本。

相关内容