Log Probleme im Bereich /var

Hey Zusammen, seit ca. 1 Woche erhalte ich diese Fehlermeldung, jemand eine Idee ?

[PHP] Error: rename(/var/log/nextcloud/nextcloud.log,/var/log/nextcloud/nextcloud.log.1): Permission denied at /var/www/nextcloud/lib/public/Log/RotationTrait.php#53

at 2020-08-09T14:30:01+02:00

Diese kommt alle 5 Minuten bei beiden nc Systemen.

Probiert habe ich bereits:

touch /var/log/nextcloud.log
chown www-data:www-data /var/log/nextcloud.log

Ich vermute, Du nutzt die Nextcloud-interne Funktion zum Rollieren der Logdatei und nicht logrotate, korrekt? Wenn dem so ist, solltest Du üblicherweise cron.php mittels eines cron jobs regelmäßig ausführen lassen. Dieser wird dann unter dem User “www-data” ausgeführt, sodass auch dieser User das Recht haben muss unter /var/log neue Dateien anzulegen bzw. vorhandene Dateien um zu benennen.
Um dies zu testen musst Du unbedingt erst in den Kontext dieses Users wechseln und dann Deine Tests durchführen. Die Befehlsausführung als root-User ist hier nicht zielführend. Beispiel:

su - wwwrun -s /bin/sh

cd /var/log
touch xxx.log

Diese Diskussion geht auch auf diese Problematik ein:

Danke für Deinen Beitrag. So ist da Ergebnis:

[sudo] password for ncadmin:
root@drive:~# su - www-data -s /bin/sh
$ cd /var/log
$ touch xxx.log
touch: cannot touch ‘xxx.log’: Permission denied
$

Also ich habe die Protokolle gelöscht, neue mit touch nextcloud.log usw erstellt und anschließend mit

chown www-data:www-data /var/log/nextcloud.log

die Berechtigung neu gesetzt. und es scheint zu funktionieren

Auch wenn dein Thema scheinbar gelöst ist. Manchmal liegt es daran, dass der Benutzer nicht im Ordner (hier /var/log) schreiben kann.

Wie @devnull schon geschrieben hat wird die Lösung vermutlich nur von kurzer Dauer sein. D.h. sobald die Logdatei wieder zu groß wird und rolliert werden soll tritt vermutlich der gleiche Fehler erneut auf. Wie Du Deinem eigenen Test entnehmen konntest, ist der User “www-data” nicht berechtigt in dem Verzeichnis /var/logneue Dateien anzulegen. Demnach solltest Du die Rechte dieses Ordners prüfen und gegebenenfalls anpassen (0755).

Alternativ kann man auch einen Ordner /var/log/nextcloud verwenden und den Benutzer www-data entsprechend berechtigen. Leider weiß ich nicht was die Default-Konfiguration ist.

Nachdem ich auch Probleme hatte mit der Permission und speziell mit der LogRotation hab ich es nun wie folgt gelöst

Einen Ordner unter /var/log angelegt mkdir /var/log/nextcloud
Den Owner abgeändert chown www-data:www-data /var/log/nextcloud
Die Berechtigungen sehen bei mir wie folgt aus drwxr-xr-x 2 www-data www-data 4096 Aug 31 12:00 nextcloud
Alle bestehenden Logs in den neuen Ordner verschoben :wink:

und zu guter Letzt noch die config.php angepasst und den Pfad der Log Datei aktualisiert
'logfile' => '/var/log/nextcloud/nextcloud.log',

Ich hoffe das klappt nun euch bei euch, wenn nicht dann bessern wir einfach nach :smiley:

1 Like