
Tengo una instancia de VirtualBox de Oracle Linux 7.2 que no se inicia debido a Failed to start Login Service
. En la secuencia de inicio, el proceso se bloquea con este mensaje y no continúa, por lo que ni siquiera puedo iniciar sesión y ejecutar systemctl status systemd-logind.service
.
La causa probable de esto es que eliminé zsh mientras todos mis usuarios (incluido el root) tenían zsh configurado como shell predeterminado (¡obviamente!). Después de eso, la máquina se inició y llegué al mensaje de inicio de sesión, pero no pude iniciar sesión porque no se pudo encontrar el shell. Luego inserté un Live CD y comencé /etc/passwd
a cambiar el shell predeterminado para los usuarios /bin/bash
. Después de esto, el servicio de inicio de sesión no se iniciará en absoluto. Alguna idea de cómo solucionar este problema?
Respuesta1
Descubrí que después de cambiarlo /etc/passwd
ya no tenía la configuración SELinux correcta. Realmente no necesito SELinux en mi máquina, así que resolví el problema desactivando SELinux por completo. Esto se hace fácilmente modificando el archivo /etc/selinux/config
y configurando la opción SELINUX=permissive
(si desea mantener el etiquetado del archivo SELinux para habilitarlo más tarde) o SELINUX=disabled
(desactinándolo por completo).
Respuesta2
Me encontré con esto hoy con CentOS 7.2 en VirtualBox. Pude ssh
ingresar como usuario habitual y emití
touch /.autorelabel
Luego reinicié para restablecer todos los contextos. Tarda un poco en arrancar, pero funcionó.
Respuesta3
Después de usarlo chage
en modo de usuario único debido a una contraseña caducada, es necesario iniciar con SELINUX=permissive
la configuración configurada /etc/selinux/config
para restaurar las etiquetas adecuadas.
Obtenga el contexto SELinux adecuado para cada archivo modificado desde un sistema sano ls -Z /etc/passwd /etc/shadow
y aplique el contexto nuevamente al sistema roto.
como unejemplo, aquí hay un conjunto de comandos utilizados en CentOS 7 después de chage
:NO APLIQUES¡Sin comparación con un sistema sensato (prueba o preproducción)!
chcon system_u:object_r:passwd_file_t:s0 /etc/passwd
chcon system_u:object_r:passwd_file_t:s0 /etc/group
chcon system_u:object_r:shadow_t:s0 /etc/shadow
chcon system_u:object_r:shadow_t:s0 /etc/gshadow
Revise el contexto SELinux de cualquier archivo que haya modificado en modo único, antes de reiniciar para SELINUX=enforcing
volver a las operaciones normales.
Otras formas de copiar el contexto SELinux están disponibles en¿Cómo copiar el contexto SELinux de un directorio y aplicarlo a otro directorio?