Один из моих сценариев обслуживания веб-сайта не может отправить почту ...
Я запускаю несколько веб-приложений на сервере CentOS8 с Apache 2.4, PHP 7.3, PHP-FPM и т. Д. И SELinux ЯВЛЯЕТСЯ принуждение. Чтобы еще больше усложнить ситуацию, чтобы должным образом изолировать разрешения для каждого сайта / приложения, PHP-FPM настроен для использования разных пользователей / групп для каждого из выделенных пулов. Это файл conf пула, связанный с этой проблемой ...
[files]
user = apache-files
group = apache-files
listen = /var/run/php-fpm/fileserver.sock
listen.owner = apache
listen.group = apache
listen.mode = 0660
listen.allowed_clients = 127.0.0.1
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
pm.max_requests = 200
request_terminate_timeout = 300
php_admin_value[memory_limit] = 256M
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/sessions/fileserver
Прежде чем вы спросите ...
getsebool httpd_can_sendmail
httpd_can_sendmail --> on
Проблема в том, что похоже, что звонок поступает от apache-files
user, который был создан PHP-FPM, но не распознается SELinux как синоним apache
пользователь, и поэтому получает отказ в разрешении при попытке использовать Postfix ...
CROND[21866]: (apache-files) CMD (/srv/utilities/nc_remote_scan.sh)
postfix/sendmail[21867]: fatal: open /etc/postfix/main.cf: Permission denied
Я еще не разбираюсь в пользовательских политиках SELinux, но полагаю, что мне нужно создать одну, чтобы позволить этой (и двум другим пользователям аналогичного пула) отправлять почту? Может кто-нибудь пролить некоторый свет на это? Спасибо!