nginx:" /root/index.html"禁止(13:许可被拒绝)

时间:2015-07-30 16:25:31

标签: nginx server fedora

我正在安装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

(抱歉,无法正确格式化为代码)

  • 我重新启动了服务器:
  

服务nginx重启

我访问了my_domain_name.com并收到403错误。 /var/log/nginx/error.log内容:

"/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"

2 个答案:

答案 0 :(得分:15)

哦!请don't disable SELinux

首先 - 真的是否需要提供/root的文件?这实际上是root用户的主目录,并不意味着是Web根目录。这实际上是一个非常糟糕的主意。相反,请使用/var/www/html或(我的偏好)/srv/www。如果您执行使用/root,请确保您没有公开ssh密钥或authorized_keys文件,数据库密码或类似内容。这真的只是一个坏主意。

其次,您应该正确配置SELinux,而不是禁用selinux(在这种情况下,保护您不要做危险的事情)。在Fedora中,SELinux策略的设计使得nginx与其他Web服务器共享,因此,使用/srv/www/yoursite作为根,

chcon -R -t httpd_sys_content_t /srv/www/yoursite

应该这样做。

答案 1 :(得分:4)

我在亚马逊linux实例上,不得不这样做

sudo chmod o+x /home/ec2-user/
sudo service nginx restart

不确定安全隐患是什么。