SELinux empêche Nginx de lire le file

J'ai nginx fonctionnant sur ma machine CentOS 7. Chaque jour, je cours un travail cron qui génère de nouveaux parameters Diffie-Hellman. Ils sont sauvegardés dans /etc/ssl/dh/dhparam.pem . Mais SELinux empêche Nginx de lire ce file.

C'est la ligne dans le journal des erreurs nginx:

nginx[3189]: nginx: [emerg] BIO_new_file("/etc/ssl/dh/dhparam.pem") failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/ssl/dh/dhparam.pem','r') error:2006D002:BIO routines:BIO_new_file:system lib)

Il s'agit du journal d'audit:

 type=AVC msg=audit(1473285202.181:334): avc: denied { open } for pid=1393 comm="nginx" path="/etc/ssl/dh/dhparam.pem" dev="dm-1" ino=101646309 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_tmp_t:s0 tclass=file type=AVC msg=audit(1473285832.647:743): avc: denied { open } for pid=2958 comm="nginx" path="/etc/ssl/dh/dhparam.pem" dev="dm-1" ino=101646309 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_tmp_t:s0 tclass=file type=AVC msg=audit(1473287010.821:803): avc: denied { open } for pid=3083 comm="nginx" path="/etc/ssl/dh/dhparam.pem" dev="dm-1" ino=101646316 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_tmp_t:s0 tclass=file type=AVC msg=audit(1473287142.871:826): avc: denied { open } for pid=3118 comm="nginx" path="/etc/ssl/dh/dhparam.pem" dev="dm-1" ino=101646309 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_tmp_t:s0 tclass=file type=AVC msg=audit(1473287172.480:843): avc: denied { open } for pid=3134 comm="nginx" path="/etc/ssl/dh/dhparam.pem" dev="dm-1" ino=101646309 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_tmp_t:s0 tclass=file type=AVC msg=audit(1473287681.994:866): avc: denied { open } for pid=3189 comm="nginx" path="/etc/ssl/dh/dhparam.pem" dev="dm-1" ino=101646309 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_tmp_t:s0 tclass=file 

Je ne suis pas très familier avec SELinux (je sais que je devrais apprendre cela): Comment puis-je accorder l'access nginx sans désactiver SELinux (ou le configurer comme permissif)?

One Solution collect form web for “SELinux empêche Nginx de lire le file”

SELinux vous refuse l'access au file, puisque vous avez déplacé au lieu de l'avoir copié d'un autre endroit sur le système de files vers son location final. Ainsi, il a conservé son context de security d'origine, ce qui n'a pas permis à Apache d'y accéder.

Pour résoudre le problème, relachez le file avec restorecon .

Pour éviter le problème à l'avenir, copyz les files (et supprimez l'original si nécessaire).

  • Impossible d'activer la connection pour Bind 9 sur Red Hat
  • Semodule -i doit-il être exécuté après chaque mise à jour de la stratégie SELinux?
  • Qu'est-ce que "AVC invalide autorisé dans la politique actuelle" signifie?
  • Permettre à httpd d'exécuter un script bash dans / usr / bin /
  • Comment rendre Puppet fixer les types SELinux pour les directorys d'accueil?
  • SELinux: Comment autoriser l'access apache, samba et tomcat sur le même file
  • Pourquoi MariaDB ne démarrera-t-il pas après la mise à niveau (NO_NEW_PRIVILEGES)
  • Selinux: Shorewall ne répondra pas à fail2ban
  • Que fait le fichier .autorelabel dans Linux?
  • pam_mount de smb share sur rhel6, le directory personnel n'est pas disponible pour la connection - probablement SELinux?
  • CentOS 7 - Répertoires créés via VSFTPD n'héritant pas de contexts SELinux
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.