У меня есть веб-приложение Zend, работающее на сервере CentOS с SELinux, работающим в разрешающем режиме (т.е. решения по управлению доступом записываются в /var/log/audit/audit.log
но не принудительно). Приложение позволяет людям загружать файлы, которые сохраняются в структуре каталогов вне htdocs
(например. /var/acme/myapp/files
). Приложению необходимо записывать и удалять файлы в этом каталоге, а также создавать, изменять и удалять каталоги в этом каталоге.
FWIW, httpd начинается как root
, затем порождает процессы как отдельного пользователя с именем apache
.
Я хотел бы перевести SELinux в принудительный режим, но все же разрешить приложению Zend выполнять операции ввода-вывода, описанные выше. Я также хочу, чтобы эти настройки SELinux сохранялись после перезапуска. Как мне это сделать?
Вам необходимо изменить метку папки, чтобы она была доступна для записи httpd.
Если http - единственное, что будет писать в него (например, ftp или ssh), то это должно сработать.
semanage fcontext -a -t httpd_sys_rw_content_t '/var/acme/myapp/files(/.*)?'
fixfiles restore /var/acme/myapp/files
Попробуйте записать в папку, все должно работать.