web-dev-qa-db-ja.com

nginx: "/root/index.html"禁止(13:許可が拒否されました)

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 -anginxルート

chmod g + x/root

(申し訳ありませんが、コードとして正しくフォーマットできませんでした)

  • サーバーを再起動しました:

service nginx restart

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"
8
sonalkr132

ああ!お願い SELinuxを無効にしないでください

まず—本当に/rootからファイルを提供する必要がありますか?これは実際にはrootユーザーのホームディレクトリであり、Webルートではありません。これは実際には非常に悪い考えです。代わりに、/var/www/htmlまたは(私の好み)/srv/wwwを使用してください。 do/rootを使用する場合は、sshキーやauthorized_keysファイル、データベースパスワードなどを公開していないことを確認してください。同様。それは本当に悪い考えです。

次に、selinuxを無効にするのではなく(この場合、危険なことをすることから保護します)、SELinuxを適切に構成する必要があります。 Fedoraでは、nginxがこれを他のWebサーバーと共有するように設計されたSELinuxポリシーであるため、ルートとして/srv/www/yoursiteを使用します。

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

それをする必要があります。

17
mattdm

私はAmazonlinuxインスタンスを使用していましたが、

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

セキュリティへの影響が何かわからない。

4
oystersauce8