J'utilise uWSGI (derrière nginx). sans Empereur, exécuté en tant que systemd
service.
uwsgi.service :
[Service]
ExecStart=/usr/local/bin/uwsgi --ini /var/www/CONSTANd++/uwsgi_config.ini
(...)
uwsgi_config.ini :
(...)
gid = www-data
uid = www-data
chdir = /var/www/CONSTANd++/constandpp_web/constandpp_web
(...)
terminal :
$ ls -la /var/www/CONSTANd++/constandpp_web/constandpp_web
drwxrwxr-x 5 pdiracdelta www-data 4096 Sep 6 10:42 .
(...)
Il est clair que ce dossier possède toutes les autorisations pour le groupe www-data, mais pourtant, lorsque je démarre ce service uWSGI, le journal uWSGI se plaint :
(...)
setgid() to 33
setuid() to 33
chdir() to /var/www/CONSTANd++/constandpp_web/constandpp_web
chdir(): Permission denied [core/uwsgi.c line 2591]
chdir(): Permission denied [core/uwsgi.c line 1613]
Pourquoi cela se produit-il et comment puis-je le réparer ? Si je retire le uid=www-data
à partir du fichier uwsgi_config.ini, tout démarre bien, mais bien sûr, les fichiers créés par mon application WSGI ont la propriété de la racine, ce que je ne veux pas.
3 votes
Qu'en est-il des répertoires de niveau supérieur ? Avez-vous vérifié leurs permissions ? Vous ne pouvez pas
cd
à moins que vous n'ayez suffisamment de privilèges pour accéder à tous les répertoires !0 votes
Vous êtes sûr ? Je viens de faire
cd /
en tant qu'utilisateur régulier et cela m'amène à/
très bien. Ou cela fonctionne-t-il différemment avec les uWSGI ?chdir()
commande ? Bien sûr,/var/
n'appartient pas au groupe www-data, comme vous le soupçonniez probablement...0 votes
"Avoir suffisamment de privilèges" ne signifie pas posséder le répertoire !
0 votes
@Khaled cette question est revenue sur le tapis. Alors comment puis-je donner les privilèges www-data à
cd
à un répertoire qu'il ne possède pas ? (vers un sous-répertoire de /var/)