¿Por qué el comando setsebool de SELINUX tarda tanto y lento?

9

He notado que el comando setsebool toma más tiempo que otros comandos de Linux. Como:

setsebool -P ftp_home_dir ON

Por curiosidad, quiero saber por qué el comando "setsebool" necesita tanto tiempo para completar la tarea.

Xianlin
fuente
1
time setsebool -P ftp_home_dir ON. ¿Cuánto tiempo consideras mucho tiempo?
jordanm
1
Probé el comando como se indica arriba y el tiempo "real" es de aproximadamente 30 segundos. Por lo general, un comando de Linux normal time setenforce 0dará aproximadamente 0.011 segundos de tiempo "real". Siento que 30 segundos es un poco largo y me pregunto qué está sucediendo en el backend.
Xianlin
strace -f setsebool -P ftp_home_dir ONy ver dónde exactamente se está tomando su dulce momento.
Flup
Creo que necesito más conocimientos de programación para comprender el resultado de strace ... Supongo que se debe a que selinux implica demasiados cambios de nivel "profundos" en el sistema Linux y es por eso que lleva tanto tiempo completar un comando.
Xianlin
¿SELinux necesita volver a compilar sus reglas cuando realiza un cambio? Pensé recordar haber leído eso en alguna parte.
functionvoid

Respuestas:

5

La razón por la que es tan lenta es porque está realizando una compilación completa de la política cuando ejecuta el comando. (Vea este BZ: https://bugzilla.redhat.com/show_bug.cgi?id=811656 , Dan Walsh es uno de los mantenedores de la política de SELinux sobre RHEL y Fedora). Se ha corregido en versiones posteriores de Fedora, lo que significa que probablemente terminará reparado en EL7 y posiblemente en versiones posteriores de EL6.

jsbillings
fuente