У меня проблемы с интерфейсом PHP, который вызывает сценарии perl и оболочки. Они позволяют загружать файл в папку и выполнять их с некоторыми входными данными, сохраняя выходные данные в некоторых других файлах. Теперь кажется, что я могу либо предоставить доступ для чтения и записи, либо выполнить одно из следующих действий:
chcon -Rv --type=httpd_sys_rw_content_t user_dir/
chcon -Rv --type=httpd_fastcgi_script_exec_t user_dir/
Как я могу рекурсивно включить для папки разрешения на чтение, запись и выполнение?
Насколько я могу судить, политика selinux по умолчанию для httpd не поддерживает создание исполняемых файлов (что неудивительно).
У вас есть несколько опций, которые не включают отключение selinux: (1) настроить политику по умолчанию / создать свою собственную или (2) изменить httpd для работы без защиты selinux.
Если вы хотите выполнить (2), выполните следующее:
# chcon -t unconfined_exec_t /usr/sbin/httpd
# /etc/init.d/httpd restart
Это приведет к запуску httpd в неограниченном домене и будет зависеть только от обычных разрешений unix rwx.
Чтобы восстановить для httpd целевую политику по умолчанию, используйте команду «restorecon»:
# restorecon -F /usr/sbin/httpd
# /etc/init.d/httpd restart