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.Debian
diesem 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?
quelle
chown www-data:www-data <yourFile>
und dannchmod 655 <yourFile>
.chmod 755 /var/log/apache2
undchmod 644 access.log
, aber ich hätte gerne eine "das ist die beste Übung" -Antwort :) Vielen Dank, dass Sie sich angemeldet haben!Antworten:
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):
zu
Leseberechtigung für alle Benutzer (einschließlich WWW-Daten).
Sie müssen die in / var / log / apache2 / vorhandenen Berechtigungsdateien entsprechend dieser Einstellung ändern
Dann können alle Dateien von allen Benutzern gelesen werden, und alle Dateien, die Logrotate in Zukunft erstellt, haben die entsprechenden Berechtigungen
quelle
In den meisten Setups:
Die Einstellungen für Eigentumsrechte und Berechtigungen finden Sie in der Datei /etc/logrotate.d/apache2 . Der Inhalt lautet:
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:
2) Ändern Sie die Berechtigungen für /var/log/apache2/access.log und /var/log/apache2/error.log in 644 .
3) Starten Sie Apache neu.
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.
quelle
/var/log/apache2
und alles darunter zu ändernwww-data
und die Dateien für Gruppen lesbar zu machen. Dies ist etwas weniger freizügig, als sie für die Welt lesbar zu machen.