Ubuntu 上の nginx: 権限が拒否されました

Ubuntu 上の nginx: 権限が拒否されました

私はシステム管理の初心者です。nginxをインストールした後人形経由Ubuntu では次の出力が得られます。

[alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)

[warn] 1898#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1

[emerg] 1898#0: open() "/var/log/nginx/access.log" failed (13: Permission denied)

これらのメッセージをすべて削除するにはどうすればいいでしょうか?

コマンドラインを直接使用 (chown / chmod) して、新しいサーバーを作成するたびにそれを繰り返すのは望ましくありません。そのため、Puppet マニフェストに何を追加する必要があるかを考えています。

この場合、システム管理者にとって最善のプラクティスは何でしょうか。/var/log/nginx の所有者/権限を変更するか、ログを別の場所に保存しますか。chown / chmod を使用する場合、どの特定の権限によって最高レベルのセキュリティが保証されますか。

これを試してみましたが、役に立ちませんでした:

  file { '/var/log/nginx':
    ensure  => directory,
    mode    => '0755',
    owner   => 'www-data',
    group   => 'www-data',
    recurse => true
  }

編集済み:

vagrant@precise64:~$ ps aux | grep [n]ginx
root      1001  0.0  0.1  62908  1388 ?        Ss   08:47   0:00 nginx: master process /usr/sbin/nginx
www-data  1002  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process
www-data  1003  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process
www-data  1004  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process
www-data  1005  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process

vagrant@precise64:~$ sudo chown -R www-data:www-data /var/log/nginx;
vagrant@precise64:~$ sudo chmod -R 755 /var/log/nginx;
vagrant@precise64:~$ ls -l /var/log/nginx/
-rwxr-xr-x 1 www-data www-data 214 Sep 10 11:07 error.log

答え1

これあなたを助けることができるかもしれません。

あなたが受け取っているメッセージは、nginxを非ルートユーザーとして、または使用せずに起動したために発生します。須藤

ログ ディレクトリ エラーを解消するには、nginx がどのユーザーとして実行されているかを確認し、そのフォルダーに適切な権限を与える必要があります (Puppet ルールが間違った権限を与えている可能性があります)

あなたが報告した警告メッセージは、(警告にあるように)「user」ディレクティブは nginx マスター プロセスが root として実行されている場合にのみ使用されることを意図しているという事実によってトリガーされます。

答え2

かなり時間が経っているのは承知していますが、これは通常 SELinux に関係しています。これを permissive に設定してみると、おそらく問題なく動作するでしょう。

関連情報