【问题标题】:nginx: "/root/index.html" forbidden (13: Permission denied)nginx: "/root/index.html" 禁止 (13: Permission denied)
【发布时间】:2015-10-22 03:09:49
【问题描述】:

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

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"

【问题讨论】:

    标签: nginx server fedora


    【解决方案1】:

    我在一个 amazon linux 实例上,必须这样做

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

    不确定安全隐患是什么。

    【讨论】:

      【解决方案2】:

      哦!请don't disable SELinux

      首先——您真的需要提供来自/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
      

      应该这样做。

      【讨论】:

      • 太棒了!这在任何 Fedora 设置教程中都没有提到,这对我和其他人来说都是非常重要的部分。像魅力一样工作!赞成。
      【解决方案3】:

      我通过禁用 SELINUX 并重新启动解决了这个问题

      vi /etc/selinux/config

      #SELINUX=enforcing
      SELINUX=disabled
      

      重启

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-02
        • 2016-06-06
        • 2021-11-08
        • 1970-01-01
        • 2021-01-31
        • 2018-07-21
        • 2016-03-26
        • 2019-12-17
        相关资源
        最近更新 更多