AWStats: Kann nicht auf /var/log/apache2/access.log zugreifen


14

Ich habe awstats auf meinem neuen Ubuntu Lucid-Server installiert, aber wenn cron versucht, es als Benutzer auszuführen www-data, beschwert es sich darüber cannot access /var/log/apache2/access.log: Permission denied.

In /usr/share/doc/awstats/README.Debiandiesem Absatz steht:

Standardmäßig speichert Apache (seit Version 1.3.22-1) Protokolldateien mit uid = root und gid = adm. Sie müssen also entweder ...

1) Ändern Sie die Rechte der Logfiles in /etc/logrotate.d/apache so, dass www-data mindestens Lesezugriff hat.

2) Wie 1), aber wechseln Sie zu einem bestimmten Benutzer und verwenden Sie die suEXEC-Funktion von Apache, um denselben Benutzer auszuführen (und ändern Sie entweder auch das Recht von / var / lib / awstats oder verwenden Sie ein anderes Verzeichnis). Dies ist komplizierter, aber dann sind die Protokolle für den Server nicht allgemein zugänglich (was wahrscheinlich der Grund für den Apache-Standard war).

3) Ändern Sie awstats.pl in group adm (aber achten Sie darauf, dass Sie das Risiko eingehen, einem CGI-Skript Zugriff auf Admin-Inhalte auf dem Computer zu gewähren!).

Ich würde mit 1 gehen, aber was sind die empfohlenen Berechtigungen zu gewähren?


Versuchen Sie dies, kann nicht versprechen, ob es funktioniert: chown www-data:www-data <yourFile>und dann chmod 655 <yourFile>.
— theTuxRacer

1
Nun, um awstats zum Laufen zu bringen, reicht es chmod 755 /var/log/apache2und chmod 644 access.log, aber ich hätte gerne eine "das ist die beste Übung" -Antwort :) Vielen Dank, dass Sie sich angemeldet haben!
— 14.

Ich denke, Sie haben Recht mit # 1 zu gehen (mit nur Lesezugriff, es sei denn, es gibt etwas anderes, was awstats benötigt). Dies gibt Zugang zu einem eingeschränkten Benutzerkonto und gewährt keinen neuen Zugang zu etwas anderem.
— Belacqua

Antworten:


8

Wenn Sie für Punkt 1 gehen und es heißt, dass www-Daten mindestens Leseberechtigung haben sollten, wird empfohlen, nur Lesen zu gewähren.

Sie können die Zeile ändern (in einer Logrotate-Datei):

create 640 root adm

zu

create 644 root adm

Leseberechtigung für alle Benutzer (einschließlich WWW-Daten).

Sie müssen die in / var / log / apache2 / vorhandenen Berechtigungsdateien entsprechend dieser Einstellung ändern

chmod a+r /var/log/apache2/* #or whatever your path is

Dann können alle Dateien von allen Benutzern gelesen werden, und alle Dateien, die Logrotate in Zukunft erstellt, haben die entsprechenden Berechtigungen


2
Und damit "alle Benutzer" in "/ var / log / apache2 /" nachsehen können, gehen Sie wie folgt vor: chmod a + x / var / log / apache2 /
— alfonx

6

In den meisten Setups:

  • awstats läuft als Ihr Apache-Benutzer www-data ;
  • Die Apache-Protokolldateien gehören root: adm und haben die Berechtigungen -rw-r ----- (aka: chmod 640 ). und
  • Die Einstellungen für Eigentumsrechte und Berechtigungen finden Sie in der Datei /etc/logrotate.d/apache2 . Der Inhalt lautet:

    /var/log/apache2/*.log {
        daily
        missingok
        rotate 60
        compress
        delaycompress
        notifempty
        dateext
        create 640 root adm
        sharedscripts
        postrotate
                /etc/init.d/apache2 reload > /dev/null
        endscript }
    

Die einfachste Lösung ist:

1) Ändern Sie " create 640 root adm " in " create 644 root adm " in /etc/logrotate.d/apache2 mit Ihrem bevorzugten Texteditor oder, wenn Sie alles skripten müssen:

sudo sed -i 's/create 640 root adm/create 644 root adm/g' /etc/logrotate.d/apache2

2) Ändern Sie die Berechtigungen für /var/log/apache2/access.log und /var/log/apache2/error.log in 644 .

sudo chmod 644 /var/log/apache2/access.log /var/log/apache2/error.log

3) Starten Sie Apache neu.

sudo apachectl -k graceful

Ich habe Leute gesehen, die die www-Daten als Lösung zur adm-Benutzergruppe hinzugefügt haben. Das sind viel mehr Berechtigungen für www-Daten, als ich auskenne.

Andere sicherere Optionen umfassen das Erstellen eines neuen Benutzers und neuer Gruppen für awstats und das Ausführen / Ausführen von awstats als dieser neue Benutzer / diese neue Gruppe.


Eine weitere Lösung wäre, die Gruppe von /var/log/apache2und alles darunter zu ändern www-dataund die Dateien für Gruppen lesbar zu machen. Dies ist etwas weniger freizügig, als sie für die Welt lesbar zu machen.
— Reinier Post
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.