> Добавлю: меня сбивает с толку факт, что в логе /var/log/audit/audit.log указан стартовый
> контекст (scontext=system_u:system_r:httpd_t:s0), в конфиге postfixadmin указан файл
> /usr/bin/doveadm, а audit2allow предлагает решение: дать httpd_t доступ на чтение директории
> конфигов dovecot. А где, собственно, указание httpd_t дать доступ к bin_t
> (/usr/bin/doveadm)?если разжевать лог это выглядит так:
postfixadmin веб приложение, которое работает под httpd(Apache2 сервер) где в веб приложении(в контексте httpd сервера) вызывается административная утилита /usr/bin/doveadm где данная утилита обращается к своему конфигурационному файлу /etc/dovecot/dovecot.conf для выполнения задачи
#ps axZ | grep httpd (отобразит текущие SELinux правила/контексты httpd процесса)
вывод:
1- отключить SELinux (что не ахти) или переключить на Permissive или Enforcing
2- подружиться с SELinux (то что советуется в audit логах) при помощи TE(Type Enforcement) файла(писать самому или же использовать audit2allow утилиту)
Решение:
#grep httpd_t /var/log/audit/audit.log | audit2allow -m doveadmlocal > doveadmlocal.te
#cat doveadm.te будет содержать типа такого:
module doveadm 1.0;
require {
type dovecot_etc_t;
type httpd_t;
class file { read getattr open };
class dir read;
}
#============= httpd_t ==============
allow httpd_t dovecot_etc_t:file { read getattr open };
allow httpd_t dovecot_etc_t:dir read;
дальше этот файл TE скомпилировать в модуль и включить в список модулей SELinux, будет где-то в этой папке /etc/selinux/targeted/modules/active/modules/:
#checkmodule -M -m -o doveadmlocal.mod doveadmlocal.te
#semodule_package -o doveadmlocal.pp -m doveadmlocal.mod
#semodule -i doveadmlocal.pp
Литература: https://wiki.centos.org/HowTos/SELinux