Isenção de responsabilidade: Esta pergunta não é para resolver o problema de alterar a senha de root enquanto o SELinux está ativo, porque já existem muitos guias para resolver isso. É mais como o SELinux faz isso internamente.
Sou um usuário recente do SELinux, mas ultimamente tenho estado mais em contato com ele. Houve um momento em que alguém me perguntou como eu poderia redefinir a senha root em caso de esquecê-la.
Então eu iniciei meu CentOS, editei a entrada do grub para algo como
linux16 <kernel_location> root=/dev/mapper/centos-root rw init=/bin/bash
Eu corri passwd
e depois corri sync
e forcei a reinicialização. Após a reinicialização, o login com a nova senha foi rejeitado, assim como com a antiga, é claro.
Reiniciou novamente e passou ao kernel o parâmetro para desativar o SELinux ( selinux=0
). Tentei fazer login com a nova senha e funcionou. Depois forcei uma nova identificação automática do fs (via arquivo .autorelabel
) e, com o SELinux ativo, agora era possível efetuar login.
Minha pergunta é: por que acontece? Por que a mudança de nome afeta o logon quando houve apenas uma alteração de senha e não de usuários ou objetos?
Obrigado pela sua atenção.
TL; DR: A redefinição de senha root comum não funciona no SELinux. Por quê?
Edit: Isso foi testado em uma máquina virtual executando o CentOS7 com o KVM como hypervisor.