Descargo de responsabilidad: Esta pregunta no es para resolver el problema de cambiar la contraseña de root mientras SELinux está activo porque ya hay muchas guías para resolverlo. Esto es más de cómo SELinux lo hace internamente.
Soy un usuario reciente de SELinux, pero últimamente he estado más en contacto con él. Hubo un momento en que alguien me preguntó cómo podría restablecer la contraseña de root en caso de olvidarla.
Así que inicié mi CentOS, edité la entrada de grub a algo como
linux16 <kernel_location> root=/dev/mapper/centos-root rw init=/bin/bash
Corrí passwd
y luego corrí sync
y forcé el reinicio. Después de reiniciar, se rechazó el inicio de sesión con la nueva contraseña, así como con la antigua, por supuesto.
Reinició nuevamente y le pasó al kernel el parámetro para deshabilitar SELinux ( selinux=0
). Intenté iniciar sesión con la nueva contraseña y funcionó. Luego forcé una etiqueta automática fs (a través del archivo .autorelabel
) y con SELinux activo ahora era posible iniciar sesión.
Mi pregunta es: ¿por qué sucede? ¿Por qué el reetiquetado afecta el inicio de sesión cuando solo hubo un cambio de contraseña y no de usuarios u objetos?
Gracias por su atención.
TL; DR: el restablecimiento de contraseña de root habitual no funciona en SELinux. ¿Por qué?
Editar: Esto se probó en una máquina virtual que ejecuta CentOS7 con KVM como hipervisor.