Ich habe Probleme mit meiner Django-Anwendung zu schreiben, die meine Named Pipe mit meinem Dämon kommuniziert:Django - Berechtigungsfehler beim Öffnen von Rohr
Django application -> garage_gate_pipe -> python daemon
Der Dämon von gate
Benutzern verwendet wird, und ich nahm an, dass www-data
verantwortlich für die Ausführung meiner Django app (wird Anwendung von uwsgi
angetrieben), so habe ich www-data
-gate
Gruppe hinzugefügt:
$ sudo -u www-data groups
gate www-data
und ich habe fürrichtigen Zugriffsrechte gewährt:
[Errno 13] Permission denied: '/path/to/garage_gate_pipe'
Hier ist die Fehlerzeile:
pipeout = open(settings.PIPE_NAME, 'w')
Es ist sehr seltsam, denn in Command alles hat gut funktioniert
prw-rw---- 1 gate gate 0 Jul 2 17:55 garage_gate_pipe
leider nicht wegen der Berechtigungsfehler nicht funktioniert:
echo -n 'Open' | sudo -u www-data tee ./garage_gate_pipe
entschied ich mich verantwortlich, welcher Benutzer zu überprüfen, ist Django App für die Verwaltung, also habe ich Berechtigungen Rohr geändert:
sudo chmod 666 garage_gate_pipe
und entschied whoami
Befehl von Shell aufzurufen und sie zu meinem Named Pipe senden und drucken Sie es in meinem python-Daemon:
os.system("whoami > /home/gate/garage_gate/gate_gpio/garage_gate_pipe")
pipeout = open(settings.PIPE_NAME, 'w')
Und alles ...
Der Ausgang von meinem Dämon gearbeitet wurde:
'www-data
'
Es ist seltsam, weil meine uwsgi Django App scheint von www-data
Benutzer ausgeführt werden.
Mein Named Pipe garage_gate_pipe
gute Zugriffsrechte hat, so kann ich es von Kommandozeilen schreiben, aber von django Anwendung funktioniert es nicht, wenn ich die Schreibberechtigung für others
hinzufügen ...
Jede Idee, was ich kann ändern, um diese Lösung mit 660
Berechtigungen für garage_gate_pipe
arbeiten zu lassen?