Besitzer kann keine Protokolldatei schreiben

Besitzer kann keine Protokolldatei schreiben

Ich arbeite an einem Python-Skript und habe eine Datei im Ordner /var/log/ mit 664 Berechtigungen erstellt

Das Python-Skript kann keine Protokolle in die erstellte Datei schreiben. Ich weiß nicht warum, da der Dateieigentümer Ubuntu ist (der Standardbenutzer von AWS).

sehr sorgfältig habe ich Lese- und Schreibrechte für die Datei vergeben

Geplanter Crontab konnte die App aufgrund eines Berechtigungsverweigerungsproblems nicht ausführen. Irgendwelche Ideen?

i) der Befehl, den Sie zum Einrichten der Crontab verwendet haben - crontab -e ii) die Crontab-Zeile, die das Python-Skript ausführt - */30 * * * * python3 /home/ubuntu/message_initiator.py iii) die genaue Fehlermeldung -Permission denied: '/var/log/ice-message-initiator.log'

Antwort1

Wenn du läufst

ll -d /var/log

Dann sehen Sie, dass es root(möglicherweise mit syslogals Gruppe) im Besitz von ist und die Berechtigungen 755 oder 775 hat, was bedeutet, dass andere das Verzeichnis zwar lesen und durchsuchen können, es aber nur root(und möglicherweise syslog) ändern können. ice-message-initiator.logist in /var/logund hat, obwohl ubuntues sein Besitzer ist, ubuntukeine Änderungsberechtigung, /var/logwas bedeutet, dass es seinen Inhalt nicht ändern kann, egal ob es sich um Dateien oder Verzeichnisse handelt. Der Fehler tritt nicht auf, weil der ubuntuBenutzer die Datei nicht lesen kann, sondern weil er nicht in die Datei schreiben kann, da er keine Änderungsberechtigung für das übergeordnete Verzeichnis hat /var/log.

Damit Ihr Cronjob funktioniert, müssen Sie ihn entweder als ausführen rootoder die Protokolldatei in ein Unterverzeichnis (z. B.) schreiben lassen /var/log/iceund ubuntuihm Änderungsberechtigungen erteilen.

verwandte Informationen