Env*_*vek 5 nginx authentication pam
有没有人设置过这样的配置?它对我不起作用。
我已经在 Ubuntu 12.04(它是用 PAM 模块构建的)上安装了 nginx-extras,并添加到站点配置中:
location ^~ /restricted_place/ {
auth_pam "Please specify login and password from main_site";
auth_pam_service_name "nginx";
}
Run Code Online (Sandbox Code Playgroud)
之后,在/etc/pam.d/nginx
:
auth required pam_script.so dir=/path/to/my/auth_scripts
Run Code Online (Sandbox Code Playgroud)
并写得最简单/path/to/my/auth_scripts/pam_script_auth
(我也尝试过编写复杂的脚本)
#!/bin/sh
exit 0 # should allow anyone
Run Code Online (Sandbox Code Playgroud)
不起作用。脚本已启动(我编写了功能齐全的脚本,该脚本成功执行、检查凭据、写入自己的日志并返回正确的退出代码,并且执行时间很长)。但是没有访问被授予,只有被拒绝。
在/var/log/nginx/error.log
出现这一行:
2012/09/13 10:44:42 [alert] 1666#0: waitpid() failed (10: No child processes)
Run Code Online (Sandbox Code Playgroud)
如果我指定/etc/pam.d/nginx
:
auth required pam_unix.so
Run Code Online (Sandbox Code Playgroud)
并授予www-data
用户阅读/etc/shadow
权限,unix 授权工作正常。但是脚本身份验证不起作用。
我不明白,哪里出了问题。是在 nginx 模块中,还是在 pam_script 模块中?
nginx PAM 模块也运行 PAMaccount
操作,因此您还需要对其进行配置。您可以使用该pam_permit
模块始终成功:
auth required pam_script.so dir=/path/to/my/auth_scripts
account required pam_permit.so
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3938 次 |
最近记录: |