我使用标准dnf在Fedora 29上安装了标准Nginx。
我在nginx.conf的顶部将用户更改为“ root”。我还在nginx.conf顶部尝试将用户设置为“用户名”。我还在将用户保留为默认“ nginx”的同时尝试了此操作。
在服务器块内部:
root /usr/share/nginx/html (THIS WORKS!)
root /home/username/path/to/destination (403 FORBIDDEN)
我已经将index.html复制到了可以工作的地方和被禁止的目的地之间的每个文件夹位置,如下所示:
/usr/share/nginx/html/index.html (THIS WORKS!)
/usr/share/nginx/index.html (THIS WORKS!)
/usr/share/index.html (THIS WORKS!)
/usr/index.html (THIS WORKS!)
/index.html (THIS WORKS!)
/home/index.html (403 FORBIDDEN)
/home/username/index.html (403 FORBIDDEN)
/home/username/path/index.html (403 FORBIDDEN)
/home/username/path/to/index.html (403 FORBIDDEN)
/home/username/path/to/destination/index.html (403 FORBIDDEN)
我逐步将nginx.conf服务器块根目录更改为上述每个文件夹,并每次重新启动nginx:
root /usr/share/nginx/html; (THIS WORKS!)
root /usr/share/nginx; (THIS WORKS!)
root /usr/share; (THIS WORKS!)
root /usr; (THIS WORKS!)
root /; (THIS WORKS!)
root /home; (403 FORBIDDEN)
root /home/username; (403 FORBIDDEN)
root /home/username/path; (403 FORBIDDEN)
root /home/username/path/to; (403 FORBIDDEN)
root /home/username/path/to/destination; (403 FORBIDDEN)
每次:
sudo service nginx restart
以下是每个文件夹的权限:
drwxr-xr-x. 2 root root /usr/share/nginx/html
drwxr-xr-x. 3 root root /usr/share/nginx
drwxr-xr-x. 279 root root /usr/share
drwxr-xr-x. 12 root root /usr
dr-xr-xr-x. 19 root root /
drwxr-xr-x. 4 root root /home
drwxr-xr-x. 26 username username /home/username
drwxrwxrwx. 15 username username /home/username/path
drwxr-xr-x. 4 username username /home/username/path/to
drwxr-xr-x. 6 username username /home/username/path/to/destination
以下是复制到上述所有文件夹的index.html文件的权限:
-rw-r--r--. 1 root root 3700 Nov 20 12:32 index.html
答案 0 :(得分:1)
为访问目录中的http服务应用访问上下文安全性。
在readhat中,启用了fedora和centos默认的selinux。
chown nginx:nginx -R "dir_name"
chcon -R -t httpd_sys_rw_content_t "dir_name"
semanage fcontext -a -t httpd_sys_rw_content_t "dir_name"
答案 1 :(得分:0)
我认为,您不应该在nginx.conf中更改用户。最常见的建议是保留默认用户 www-data 。
最好将您的用户名添加到www-data组或类似的名称。 尝试朝这个方向搜索,也许此链接会为您提供帮助:https://askubuntu.com/a/9411