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

可以帮助你。

您收到的消息是由于您以非 root 用户身份启动了 nginx,或者没有使用须藤

要消除日志目录错误,您必须检查 nginx 以哪个用户身份运行,并为该文件夹授予适当的权限(您的 puppet 规则可能将权限授予了错误的用户)

您报告的警告信息是由以下事实触发的:(如警告所述)“用户”指令仅当您的 nginx 主进程以 root 身份运行时才使用。

答案2

我知道这已经过去很久了,但这通常与 SELinux 有关。尝试将其设置为宽容,它可能会正常工作。

相关内容