noi*_*llo 7 freebsd nginx authentication pam
我想使用 nginx PAM 模块在 FreeBSD 系统上使用现有用户对站点进行身份验证。我尝试使用 pam_unix.so,但没有成功。它只是不让我使用我的 usr/psw 对。:(
nginx配置:
location / {
root html;
auth_pam "Secure Zone";
auth_pam_service_name "nginx";
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
}
Run Code Online (Sandbox Code Playgroud)
目录中的nginx文件/usr/local/etc/pam.d
:
auth required pam_unix.so
account required pam_unix.so
Run Code Online (Sandbox Code Playgroud)
如果有人能告诉我一个工作配置,我将不胜感激。:)
回答一个非常古老的问题,但我能够确认这确实有效,因此这可能会有所帮助。这允许根据本地服务器帐户名称对 nginx 位置进行身份验证。天啊。
nginx -v
nginx version: nginx/1.14.0 (Ubuntu)
Run Code Online (Sandbox Code Playgroud)
创建/etc/pam.d/nginx
并添加行:
@include common-auth
Run Code Online (Sandbox Code Playgroud)
在您的 nginx 配置中:
location /secure {
auth_pam "Secure zone";
auth_pam_service_name "nginx";
}
Run Code Online (Sandbox Code Playgroud)
神奇的酱汁是:
sudo usermod -aG shadow www-data
Run Code Online (Sandbox Code Playgroud)
检查 nginx.conf 中使用的帐户user www-data
。它有时可以配置为nobody
.
重启 nginx 和宾果游戏!
感谢上面的答案帮助我完成了这个解决方案
小智 4
不确定你是否已经尝试过这个,但我确实注意到了:
请注意,该模块以 Web 服务器用户身份运行,因此所使用的 PAM 模块必须能够在无需 root 的情况下对用户进行身份验证;这意味着如果你想使用 pam_unix.so 模块来验证用户,你需要让 Web 服务器用户读取 /etc/shadow 文件(如果这不会吓到你)(在 Debian 之类的系统上,你可以添加 www-data用户到影子组)。
恐怕我无法确认您的配置,因为我没有使用 pam_unix.so。
归档时间: |
|
查看次数: |
17557 次 |
最近记录: |