My web server is configured to serve a directory out of a user's public_html directory. The directories are all correctly labelled: [root@www adamw]# ls -dlZ public_html/ drwxr-xr-x. 15 adamw adamw unconfined_u:object_r:httpd_user_content_t:s0 4096 Apr 6 11:53 public_html/ [root@www adamw]# ls -dlZ public_html drwxr-xr-x. 15 adamw adamw unconfined_u:object_r:httpd_user_content_t:s0 4096 Apr 6 11:53 public_html [root@www adamw]# ls -dlZ public_html/fedfind drwxrwxr-x. 3 adamw adamw unconfined_u:object_r:httpd_user_content_t:s0 4096 Oct 14 2016 public_html/fedfind [root@www adamw]# ls -dlZ public_html/fedfind/releases drwxrwxr-x. 2 adamw adamw unconfined_u:object_r:httpd_user_content_t:s0 4096 Feb 10 2017 public_html/fedfind/releases and the httpd_read_user_content boolean is on: [root@www adamw]# getsebool httpd_read_user_content httpd_read_user_content --> on but SELinux denies Apache access to the directory when I try to browse to it: Sep 13 21:06:08 www.happyassassin.net setroubleshoot[4841]: SELinux is preventing httpd from read access on the directory releases. For complete SELinux messages run: sealert -l e1abd9de-0186-49ba-98fa-a1f36fac4af5 Sep 13 21:06:08 www.happyassassin.net python3[4841]: SELinux is preventing httpd from read access on the directory releases. ***** Plugin catchall_boolean (47.5 confidence) suggests ****************** If you want to unify HTTPD handling of all content files. Then you must tell SELinux about this by enabling the 'httpd_unified' boolean. Do setsebool -P httpd_unified 1 ***** Plugin public_content (47.5 confidence) suggests ******************** If you want to treat releases as public content Then you need to change the label on releases to public_content_t or public_content_rw_t. Do # semanage fcontext -a -t public_content_t 'releases' # restorecon -v 'releases' ***** Plugin catchall (6.38 confidence) suggests ************************** If you believe that httpd should be allowed read access on the releases directory by default. Then you should report this as a bug. You can generate a local policy module to allow this access. Do allow this access for now by executing: # ausearch -c 'httpd' --raw | audit2allow -M my-httpd # semodule -X 300 -i my-httpd.pp So I'm stuck with SELinux in permissive mode or else my web server won't serve these files.
selinux-policy-3.13.1-260.14.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-d312739a4e
260.14.fc26 actually fixes this - it's listed in the package changelog - but without referencing this bug. I edited the update.
selinux-policy-3.13.1-260.14.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.