Я пытаюсь настроить общий ресурс NFS между двумя серверами CentOS (filesrv и websrv) для папки, которая должна быть доступна для чтения и записи для процесса Apache. У меня проблемы с записываемой стороной этого, которую я сузил до конфигурации SELinux: Apache может писать в общую папку, если я setenforce 0
на клиенте NFS.
Соответствующая строка в файле экспорта для сервера NFS:
/data/files/sitefiles websrv(rw,sync,no_root_squash)
Контекст SELinux для общей папки на сервере NFS:
system_u:object_r:httpd_sys_rw_content_t:s0
Запись в моем fstab на клиенте NFS:
filesrv:/data/files/sitefiles /var/www/html/webroot/files nfs context="system_u:object_r:httpd_sys_rw_content_t:s0" 0 0
Насколько я могу судить, это должно смонтировать общий ресурс NFS с httpd_sys_rw_content_t
контекст, но когда я это проверяю, на самом деле это:
system_u:object_r:httpd_sys_content_t:s0
Что могло заставить его применить более строгий контекст к общему ресурсу?
Простым решением должно быть использование логического значения SELinux. httpd_use_nfs
чтобы позволить вашему веб-серверу отображать и записывать контент, хранящийся в общей папке NFS:
setsebool -P httpd_use_nfs=1
Эта проблема возникла из-за того, что я монтировал несколько общих ресурсов NFS с одного сервера, не все из которых имели одинаковый контекст.
В соответствии с Документация RedHat о нескольких монтированиях NFS, Мне нужно было добавить безболезненная боль в мою строку fstab для креплений. Затем применяется правильный контекст SELinux для каждого монтирования.
Рабочая строка в моем fstab следующая:
filesrv:/data/files/sitefiles /var/www/html/webroot/files nfs nosharecache,context="system_u:object_r:httpd_sys_rw_content_t:s0" 0 0