nginx:“/root/index.html”禁止(13:权限被拒绝)
nginx: "/root/index.html" forbidden (13: Permission denied)
我正在安装 nginx。这是我遵循的步骤:
- 在/root目录下制作index.html文件
编辑 /etc/nginx/nginx.conf。编辑后看起来像这样:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
...
http {
...
server {
listen 80 default_server;
server_name my_domain_name.com;
root /root;
...
}
- 以下 this 个问题我放弃了权限:
gpasswd -a nginx root
chmod g+x /root
(抱歉,无法正确格式化为代码)
- 我重启了服务器:
service nginx restart
我访问了 my_domain_name.com 并收到 403 错误。 /var/log/nginx/error.日志内容:
"/root/index.html" is forbidden (13: Permission denied), client: 117.211.86.108, server: my_domain_name.com, request: "GET / HTTP/1.1", host: "my_domain_name.com"
我在亚马逊 linux 实例上,必须这样做
sudo chmod o+x /home/ec2-user/
sudo service nginx restart
不确定安全隐患是什么。
首先 — 您 真的 需要提供来自 /root
的文件吗?这实际上是 root 用户的主目录,而不是 web 根目录。这实际上是一个非常糟糕的主意。相反,使用 /var/www/html
或(我的偏好)/srv/www
。如果你做 使用/root
,请确保你没有暴露 ssh 密钥或 authorized_keys
文件、数据库密码或任何类似的东西。这真的是一个糟糕的主意。
其次,与其禁用 SELinux(在这种情况下,它可以保护您免受危险行为),不如正确配置它。在 Fedora 中,设计的 SELinux 策略使 nginx 与其他网络服务器共享此策略,因此,使用 /srv/www/yoursite
作为根,
chcon -R -t httpd_sys_content_t /srv/www/yoursite
应该做。
我通过禁用 SELINUX 并重启解决了这个问题
vi /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
重启
我正在安装 nginx。这是我遵循的步骤:
- 在/root目录下制作index.html文件
编辑 /etc/nginx/nginx.conf。编辑后看起来像这样:
user nginx; worker_processes 1; error_log /var/log/nginx/error.log; ... http { ... server { listen 80 default_server; server_name my_domain_name.com; root /root; ... }
- 以下 this 个问题我放弃了权限:
gpasswd -a nginx root
chmod g+x /root
(抱歉,无法正确格式化为代码)
- 我重启了服务器:
service nginx restart
我访问了 my_domain_name.com 并收到 403 错误。 /var/log/nginx/error.日志内容:
"/root/index.html" is forbidden (13: Permission denied), client: 117.211.86.108, server: my_domain_name.com, request: "GET / HTTP/1.1", host: "my_domain_name.com"
我在亚马逊 linux 实例上,必须这样做
sudo chmod o+x /home/ec2-user/
sudo service nginx restart
不确定安全隐患是什么。
首先 — 您 真的 需要提供来自 /root
的文件吗?这实际上是 root 用户的主目录,而不是 web 根目录。这实际上是一个非常糟糕的主意。相反,使用 /var/www/html
或(我的偏好)/srv/www
。如果你做 使用/root
,请确保你没有暴露 ssh 密钥或 authorized_keys
文件、数据库密码或任何类似的东西。这真的是一个糟糕的主意。
其次,与其禁用 SELinux(在这种情况下,它可以保护您免受危险行为),不如正确配置它。在 Fedora 中,设计的 SELinux 策略使 nginx 与其他网络服务器共享此策略,因此,使用 /srv/www/yoursite
作为根,
chcon -R -t httpd_sys_content_t /srv/www/yoursite
应该做。
我通过禁用 SELINUX 并重启解决了这个问题
vi /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
重启