Назад | Перейти на главную страницу

nginx в Ubuntu: в доступе отказано

Я новичок в системном администрировании. После установки 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) и повторять ее каждый раз при создании нового сервера. Поэтому я думаю о том, что нужно добавить в манифест марионетки.

Как лучше всего поступить сисадмину в этом случае: изменить владельца / разрешения для / 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

этот мог бы вам помочь.

Сообщения, которые вы получаете, связаны с тем, что вы запустили nginx как пользователь без полномочий root или без использования судо.

Чтобы избавиться от ошибки log dir, вам необходимо проверить, от имени какого пользователя запущен nginx, и предоставить соответствующие разрешения для этой папки (возможно, ваше правило марионетки давало права не тому)

Предупреждающее сообщение, о котором вы сообщили, вызвано тем фактом, что (как указано в предупреждении) директива «user» предназначена для использования ТОЛЬКО, когда ваш главный процесс nginx работает от имени пользователя root.

Я знаю, что это было давно, но обычно это связано с SELinux. Попробуйте установить его в разрешающий режим, и он, вероятно, будет работать нормально.