Estou executando o Wordpress no Rocky Linux 9 e preciso optipng
de algumas tarefas de transformação de imagem, mas está sendo bloqueado:
SELinux is preventing /usr/sbin/php-fpm from execute access on the file optipng.
***** Plugin catchall_boolean (89.3 confidence) suggests ******************
If you want to allow httpd to unified
Then you must tell SELinux about this by enabling the 'httpd_unified' boolean.
Do
setsebool -P httpd_unified 1
***** Plugin catchall (11.6 confidence) suggests **************************
If you believe that php-fpm should be allowed execute access on the optipng file 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 'php-fpm' --raw | audit2allow -M my-phpfpm
# semodule -X 300 -i my-phpfpm.pp
Corrija-me se estiver errado, mas quero evitar fazer algo assim setsebool -P httpd_unified 1
porque entendo que isso concederá permissões bastante amplas e permitirá php-fpm
a execução de qualquer arquivo rotulado com httpd_sys_rw_content_t
.
Além disso, quando eu executo, ausearch -c 'php-fpm' --raw | audit2allow -M my-phpfpm
ele cria uma política que teria o mesmo efeito amplo:
module my-phpfpm 1.0;
require {
type httpd_sys_rw_content_t;
type httpd_t;
class file execute;
}
#============= httpd_t ==============
#!!!! This avc can be allowed using the boolean 'httpd_unified'
allow httpd_t httpd_sys_rw_content_t:file execute;
Isso me leva à minha pergunta: como posso deixar php-fpm
executar com segurança /usr/bin/optipng
?
Talvez a melhor maneira seja apenas fazer setsebool -P httpd_unified 1
, ou talvez eu precise criar um novo tipo para optipng
, gostar semanage fcontext -a -t my_optipng_exec_t '/usr/bin/optipng'
e permitir php-fpm
a execução desse tipo específico com uma política personalizada. Eu tentei isso, mas não consigo fazer funcionar.
Por favor, deixe-me saber suas sugestões.
Obrigado.
Estou usando o EWWW Image Optimizer para Wordpress e acabei de perceber que ele baixa seus próprios utilitários de transformação de imagem e os armazena na pasta do plugin. Isso significa que eles foram definidos como
httpd_sys_rw_content_t
.Assim que percebi isso, mudei para
httpd_sys_script_exec_t
e mudeirestorecon -Rv
e o problema desapareceu.Antes, eu estava tentando erroneamente fazer alterações nos mesmos utilitários em /usr/bin.