Ours avec moi, je suis encore nouveau sur Linux. J'ai un serveur Web qui tente d'accéder à un dossier public sous un compte d'utilisateur.
J'exécute un serveur nginx qui tente d'accéder à la page de maintenance dans un dossier public partagé d'applications et reçoit les erreurs d'autorisation refusée.
quotr
et groupe principal: app
ubuntu
et groupe principal: www-data
/home/quotr/app
/home/quotr/app/shared
/home/quotr/app/shared/public/system/maintenance.html
Au départ, je n’avais ajouté que le groupe www-data
au groupe app
dans l’espoir de résoudre le problème. Lorsque cela ne fonctionnait pas, j'ai également ajouté le groupe qui partait dans l'autre sens.
www-data:x:33:Apache,quotr
ubuntu:x:1000:
app:x:1001:quotr,ubuntu,www-data
La propriété de l'ensemble de l'arborescence d'applications appartient à quotr:app
. Lorsque j'ai commencé à recevoir les problèmes d'autorisation, j'ai modifié la propriété le long de la partie public/system/maintenance.html
du chemin d'accès à la page de maintenance (/home/quotr/app/shared/public/system/maintenance.html
) en quotr:www-data
.
Partant de /var/www/quotr-public
et descendant:
# ls -la
drwxr-xr-x 4 quotr www-data 4096 Mar 3 21:49 .
drwxr-xr-x 5 quotr www-data 4096 Mar 3 21:49 ..
drwxr-xr-x 5 quotr www-data 4096 Mar 4 16:00 assets
drwxr-xr-x 3 quotr www-data 4096 Mar 4 19:03 system
# cd to system ls -la
drwxr-xr-x 3 quotr www-data 4096 Mar 4 19:03 .
drwxr-xr-x 4 quotr www-data 4096 Mar 3 21:49 ..
-rwxr-x--- 1 quotr www-data 3004 Mar 4 19:03 maintenance.html
drwxr-xr-x 3 quotr www-data 4096 Mar 3 21:51 pictures
Je teste les autorisations à l'aide de la commande suivante:
Sudo -u www-data stat /home/quotr/app/shared/public/
ce qui entraîne une autorisation refusée.
Lors de la dernière tentative, j'ai créé le lien symbolique suivant:
quotr-public -> /home/quotr/app/shared/public/
Ce que je suis capable d'exécuter le suivant avec succès mais pas plus profond:
Sudo -u www-data stat /var/www/quotr-public
Je suis à une perte totale de ce qu'est le problème à ce stade. Toute orientation serait grandement appréciée.
J'ai continué à jouer avec les permissions, ce qui peut constituer une différence, mais veuillez trouver ci-dessous le résultat demandé. Sortie de 'namei -lx /home/quotr/app/shared/public/system/maintenance.html'
Drwxr-xr-x root root /
drwxr-xr-x root root home
drwx------ quotr app quotr
drwxr-xr-x quotr app app
drwxr-xr-x quotr www-data shared
drwxr-xr-x quotr www-data public
drwxr-xr-x quotr www-data system
-rw-r--r-- quotr app maintenance.html
Sortie de 'namei -lx /var/www/quotr-public/system/maintenance.html'
Drwxr-xr-x root root /
drwxr-xr-x root root var
drwxrwsr-x root www-data www
lrwxrwxrwx ubuntu www-data quotr-public -> /home/quotr/app/shared/public/
Drwxr-xr-x root root /
drwxr-xr-x root root home
drwx------ quotr app quotr
drwxr-xr-x quotr app app
drwxr-xr-x quotr www-data shared
drwxr-xr-x quotr www-data public
drwxr-xr-x quotr www-data system
-rw-r--r-- quotr app maintenance.html
Merci.
Je pense que vous y avez presque eu recours à l'aide de muru. Tous les dossiers de l'arborescence doivent être exécutables par www-data. Comme le dossier quotr appartient au groupe d'applications et que www-data se trouve dans le groupe d'applications, il serait préférable de donner exec au groupe plutôt qu'aux autres:
chmod g+x quotr
En tant que suggestion secondaire ... J'ai construit plusieurs sites Web avec nginx en tant que www-data. Ce qui a bien fonctionné pour moi, c’est de laisser www-data tout posséder en tant qu’utilisateur et groupe. J'ajoute ensuite mon utilisateur et celui qui a besoin d'accéder au groupe www-data.