Estou tentando fazer com que o dspam funcione no SELinux (CentOS 7). Eu adicionei o seguinte sem problemas:
allow dspam_t dspam_rw_content_t:dir getattr;
allow dspam_t dspam_rw_content_t:file { append getattr lock open write };
No entanto, o dspam ainda não funciona via procmail:
/bin/sh: /usr/bin/dspam: Permission denied
procmail: Program failure (126) of "/usr/bin/dspam"
Quando defino o SELinux como permissivo, ele funciona bem. Tentei usar audit2allow
para identificar o que está faltando:
[root@opus ~]# audit2allow -i /var/log/audit/audit.log
#============= dspam_t ==============
allow dspam_t dspam_rw_content_t:dir search;
Mas adicionar isso à minha política causa checkmodule
erro:
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
Pesquisei um pouco, mas não consigo encontrar uma solução. Como eu adicionaria ou definiria a search
permissão conforme indicado?
Responder1
Embora não resolva o problema final para mim (dspam não funciona no modo de aplicação do SELinux), estou postando isso porque responde à pergunta real que fiz (como conceder permissão de pesquisa).
Acontece que estava faltando search
no require
bloco deste módulo. Eu tive:
require {
[...]
class dir getattr;
}
Quando, como descobri navegando no link do comentário de @harrymc, precisei:
require {
[...]
class dir { write getattr add_name search };
}
Depois disso, o módulo compila e carrega corretamente.