![Cree una política SELinux para un servicio systemd personalizado](https://rvso.com/image/134423/Cree%20una%20pol%C3%ADtica%20SELinux%20para%20un%20servicio%20systemd%20personalizado.png)
Estoy usando Fedora Workstation 27 Live
un sistema operativo en el que quiero ejecutar un servicio personalizado EnableBIOS.service
junto con el inicio del sistema operativo. Para que esto funcione, tengo que desactivarlo, SELinux
lo que está causando un problema en mi entorno. Entonces, no puedo desactivarlo SELinux
.
Como alternativa, intenté crear un SELinux policy
servicio personalizado para mi pero no logré ningún avance.
El servicio está iniciando sesión debajo del mensaje en /var/log/audit/audit.log
:
type=SERVICE_START msg=audit(1527782475.777:239): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=EnableHBA comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=AVC msg=audit(1527782475.779:240): avc: denied { execute } for pid=4223 comm="(leHBA.sh)" name="enableHBA.sh" dev="dm-0" ino=38164 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
type=SERVICE_STOP msg=audit(1527782475.782:241): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=EnableHBA comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
y,
[root@localserver]# audit2allow -w -a
type=AVC msg=audit(1527782475.779:240): avc: denied { execute } for pid=4223 comm="(leHBA.sh)" name="enableHBA.sh" dev="dm-0" ino=38164 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
Was caused by:
Unknown - would be allowed by active policy
Possible mismatch between this policy and the one under which the audit message was generated.
Possible mismatch between current in-memory boolean settings vs. permanent ones.
Para crear SELinux policy
, ejecuté los siguientes comandos:
[root@localserver]# grep enableHBA /var/log/audit/audit.log | audit2allow -M enablehba
[root@localserver]# semodule -i enablehba.pp
Después de hacer esto, intenté ejecutar mi servicio nuevamente y el mensaje registrado fue:
[root@localserver]# audit2allow -w -a
type=AVC msg=audit(1527782959.912:250): avc: denied { read open } for pid=4612 comm="(leHBA.sh)" path="/root/enableHBA/enableHBA.sh" dev="dm-0" ino=38164 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
Was caused by:
Missing type enforcement (TE) allow rule.
You can use audit2allow to generate a loadable module to allow this access.
Quiero saber dónde estoy haciendo mal o hay alguna otra manera de cumplir mi requisito.
Respuesta1
Mueva su script a /usr/local/sbin y verifique que el script esté correctamente etiquetado comobin_t
El script debe ejecutarse ilimitadamente y tener todos los privilegios que necesita.