Estoy intentando que dspam funcione en SELinux (CentOS 7). Agregué lo siguiente sin problemas:
allow dspam_t dspam_rw_content_t:dir getattr;
allow dspam_t dspam_rw_content_t:file { append getattr lock open write };
Sin embargo, dspam todavía no funciona a través de procmail:
/bin/sh: /usr/bin/dspam: Permission denied
procmail: Program failure (126) of "/usr/bin/dspam"
Cuando configuro SELinux como permisivo, funciona bien. Intenté usar audit2allow
para identificar lo que falta:
[root@opus ~]# audit2allow -i /var/log/audit/audit.log
#============= dspam_t ==============
allow dspam_t dspam_rw_content_t:dir search;
Pero agregar eso a mi política genera checkmodule
un error:
checkmodule: loading policy configuration from OPUS.te
OPUS.te:19:ERROR 'permission search is not defined for class dir' at token ';' on line 19:
allow dspam_t dspam_rw_content_t:dir getattr;
allow dspam_t dspam_rw_content_t:dir search;
checkmodule: error(s) encountered while parsing configuration
He buscado un poco pero no puedo encontrar una solución. ¿Cómo agregaría o definiría el search
permiso como se indica?
Respuesta1
Aunque no me resuelve el problema final (dspam no funciona en el modo de aplicación de SELinux), estoy publicando esto porque responde a la pregunta real que hice (cómo otorgar permiso de búsqueda).
Resulta que me faltaba search
en el require
bloque de este módulo. Tuve:
require {
[...]
class dir getattr;
}
Cuando, como descubrí navegando por el enlace en el comentario de @harrymc, necesitaba:
require {
[...]
class dir { write getattr add_name search };
}
Después de esto, el módulo se compila y carga correctamente.