nginx unter Ubuntu: Berechtigung verweigert

nginx unter Ubuntu: Berechtigung verweigert

Ich bin neu in der Systemadministration. Nach der Installation von nginxüber Puppetunter Ubuntu erhalte ich folgende Ausgabe:

[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)

Wie werde ich all diese Nachrichten los?

Ich möchte die Kommandozeile nicht direkt verwenden (chown / chmod) und sie jedes Mal wiederholen, wenn ich einen neuen Server erstelle. Daher überlege ich, was zum Puppet-Manifest hinzugefügt werden muss.

Was ist in diesem Fall die beste Vorgehensweise für den Systemadministrator: Eigentümer/Berechtigungen für /var/log/nginx ändern oder Protokolle an einem anderen Ort speichern? Wenn chown/chmod die richtige Vorgehensweise ist, welche spezifischen Berechtigungen würden das höchste Maß an Sicherheit gewährleisten?

Ich habe das hier versucht, aber es hat nicht geholfen:

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

Bearbeitet:

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

Antwort1

Daskönnte dir helfen.

Die Meldungen, die Sie erhalten, sind darauf zurückzuführen, dass Sie nginx als Nicht-Root-Benutzer oder ohne Verwendung vonsudo.

Um den Log-Dir-Fehler zu beheben, müssen Sie prüfen, unter welchem ​​Benutzer nginx ausgeführt wird, und diesem Ordner die entsprechenden Berechtigungen erteilen (Ihre Puppet-Regel hat möglicherweise dem falschen Benutzer Rechte erteilt).

Die von Ihnen gemeldete Warnmeldung wird durch die Tatsache ausgelöst, dass (wie in der Warnung angegeben) die Direktive „user“ NUR verwendet werden soll, wenn Ihr Nginx-Masterprozess als Root ausgeführt wird.

Antwort2

Ich weiß, es ist schon eine Weile her, aber das hat normalerweise mit SELinux zu tun. Versuchen Sie, es auf „permissiv“ einzustellen, dann funktioniert es wahrscheinlich problemlos.

verwandte Informationen