web-dev-qa-db-fra.com

Impossible de stat 'direction', autorisation refusée lorsque les autorisations sont définies

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.

Problème

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.

Les bases

  • Utilisateur de l'application: quotr et groupe principal: app
  • Utilisateur du serveur Web: ubuntu et groupe principal: www-data
  • Accueil de l'application: /home/quotr/app
  • Dossier public partagé de l'application: /home/quotr/app/shared
  • Chemin absolu du fichier de maintenance: /home/quotr/app/shared/public/system/maintenance.html

Groupes:

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 possession

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.

Les permissions

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

Essai

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.

Dernier fossé

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.

Modifier 1

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.

2
gwnp

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.

0
Paul Brackin