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.