Você pode especificar uma transição em um arquivo de política personalizado ( .te
) assim:
module collectdlocalexec 1.0;
require {
type collectd_t;
type user_home_t;
type unconfined_t;
type shell_exec_t;
class capability {setgid setuid };
class file { execute read open };
class process transition;
}
allow collectd_t self:capability { setgid setuid };
allow collectd_t user_home_t:file { execute read open };
allow collectd_t shell_exec_t:file execute;
allow collectd_t unconfined_t:process transition;
type_transition collectd_t user_home_t:process unconfined_t;
Supondo que o script de coleta esteja localizado no diretório base de um usuário (e que esteja marcado com user_home_t
).