4 votes

Apache jette 403 lors de la fourniture d'images à partir d'un partage NFS

Je reçois constamment des erreurs 403 Permission Denied en essayant de servir des images depuis Apache tournant sur Machine A. Les images sont dans un répertoire qui est un partage NFS de Machine B. L'entrée sur Machine B dans /etc/exports ressemble à ceci : /dir/ xxx.xxx.xxx.xxx(rw,sync,no_root_squash)

Je peux parcourir avec succès les fichiers/répertoires montés en NFS sur Machine A.

Après avoir parcouru httpd.conf, j'ai également décommenté les options EnableMMAP off et EnableSendFile Off comme indiqué là-bas.

Les deux machines sont sur RHEL5.

7voto

Thornsten Points 441

Enfin résolu cela. C'était un problème SELinux tout le temps. Trouvé la solution ici - http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/selinux-guide/rhlcommon-section-0068.html

Dans Red Hat Enterprise Linux 4, la plupart des démons ciblés n'interagissent pas avec les données utilisateur et ne sont pas affectés par les répertoires de la maison montés via NFS. Une exception est Apache HTTP. Par exemple, les scripts CGI qui se trouvent sur le système de fichiers monté ont le type nfs_t, qui n'est pas un type que httpd_t est autorisé à exécuter.

Configurer SELinux en mode permissif sur les serveurs pertinents a fait le travail pour moi.

1voto

Matt Simmons Points 20098

NFS provoque toujours des choses amusantes comme ça chaque fois que les UID/GIDs ne sont pas correctement alignés.

En supposant que votre serveur web fonctionne en tant qu'utilisateur "apache", assurez-vous que les autorisations sur le fichier sont telles qu'elles sont lisibles par tout le monde.

Connectez-vous à l'utilisateur apache et allez dans le répertoire, et essayez de caté les fichiers.

C'est probablement un problème d'autorisations. Si apache n'écrit pas dans le répertoire, il se moque de savoir si les fichiers qu'il lit sont sur NFS ou autre chose.

0voto

Dan Carley Points 24959

En plus de la suggestion de Matt, vérifiez également que Apache est autorisé à servir des fichiers de l'endroit où se trouve votre point de montage NFS. Dans un but de sécurité, de nombreuses distributions Apache viennent avec une directive restrictive comme celle-ci :

    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all

Cela empêche tout fichier d'être servi à partir de / et au-dessus. Généralement, vous aurez alors une règle moins restrictive pour autoriser un autre répertoire, qui contient vos DocumentRoots, à servir des fichiers un peu plus librement.

Je ne suis pas familier avec la distribution des fichiers de configuration Apache de RHEL5. Mais vous pourriez avoir besoin de créer une directive Directory supplémentaire pour permettre aux fichiers d'être servis à partir de votre point de montage.

-1voto

angvz Points 1

J'ai eu ce problème exact.

Je suis sur Xubuntu et l'utilisateur www-data (apache) n'avait pas accès à un montage nfs.

avant 'sudo mount -a' le point de montage était...

drwxrwxrwx

mais après

drwxrwx---

quelqu'un a mentionné le changement du groupe du répertoire en www-data, mais je viens de lui redonner les autorisations 777 après le montage. Je dois me renseigner sur les montages nfs pour le faire automatiquement

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X