Wenn ein Befehl Ausführen des manage.py
Skript, gibt django mir eine Erlaubnis verweigert Fehler:Python/Django Protokollierung Berechtigungsfehler
[email protected]:/opt/proj$ python3 manage.py migrate
Traceback (most recent call last):
File "/usr/lib/python3.5/logging/config.py", line 558, in configure
handler = self.configure_handler(handlers[name])
File "/usr/lib/python3.5/logging/config.py", line 731, in configure_handler
result = factory(**kwargs)
File "/usr/lib/python3.5/logging/__init__.py", line 1008, in __init__
StreamHandler.__init__(self, self._open())
File "/usr/lib/python3.5/logging/__init__.py", line 1037, in _open
return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/var/log/django/debug.log'
Aber ich bin in der richtigen Gruppe (soweit ich sehen kann), und Ich kann das Logfile mit der Shell berühren:
[email protected]:/var/log/django$ ls -la
total 20
drwxrwxr-x 2 nobody www-data 4096 Jul 20 13:06 .
drwxrwxr-x 12 root syslog 4096 Jul 20 12:37 ..
-rwxrwxr-x 1 nobody www-data 11283 Jul 20 13:07 debug.log
[email protected]:/var/log/django$ groups
vagrant adm cdrom sudo dip www-data plugdev lxd lpadmin sambashare
[email protected]:/var/log/django$ touch debug.log
[email protected]:/var/log/django$
Kann mir jemand helfen zu verstehen, was das Problem hier ist? Ich benutze das vagabund 'bento' ubuntu 16.04 Bild.
Edit: Nur um klar zu sein, es funktioniert gut, wenn ich die Berechtigungen auf 777 in der Protokolldatei festlegen. Aber ich würde sie lieber als 775 (oder weniger) behalten.
danke für deinen Vorschlag. Ich habe gerade die IMG Informationen hinzugefügt, es ist Ubuntu 16.04. Ich habe SELinux nicht (glaube ich), aber ich habe AppArmor mit 'sudo invoke-rc.d apparmor kill' deaktiviert und habe immer noch das gleiche Problem. – jeremy
Ich denke, dies ist ein primäres oder sekundäres Gruppenberechtigungsproblem. Wird die Antwort überarbeiten, um es zu reflektieren. –