我试图使用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中提取了密码,并使用相同的脚本输出它。但是为了我的生命,我不能得到用户名。
对我下一步该尝试什么有什么想法吗?
发布于 2015-07-02 12:23:54
如果您用插件“openvpn- plugin -auth-pan.so”设置键值对,如下所示:
plugin /usr/lib/openvpn/openvpn-plugin-auth-pan.so "openvpn mykey myval登录COMMONNAME“
那么它不会设置PAM_USER (因为它用user=NULL调用pam_start ),这可能是您的问题吗?
发布于 2011-11-23 17:44:07
你用的是什么发行版?RHEL和CentOS使用pam 0.99。目前有一个针对这个问题的bug (https://bugzilla.redhat.com/show_bug.cgi?id=554518),但是我相信他们只是在使用一个古老版本的PAM。
https://serverfault.com/questions/281361
复制相似问题