
Eu tenho uma instância do VirtualBox do Oracle Linux 7.2 que não inicia por causa do Failed to start Login Service
. Na sequência de inicialização o processo trava nesta mensagem e não continua, então não consigo nem fazer login e executar systemctl status systemd-logind.service
.
A causa provável para isso é que eu removi o zsh enquanto todos os meus usuários (incluindo o root) têm o zsh definido como o shell padrão (duh!). Depois disso, a máquina foi iniciada e cheguei ao prompt de login, mas não consegui fazer login porque o shell não foi encontrado. Em seguida, inseri um Live CD e mudei /etc/passwd
o shell padrão para os usuários /bin/bash
. Depois disso, o serviço de login não será iniciado. Alguma idéia de como consertar isso?
Responder1
Descobri que depois de alterá-lo /etc/passwd
não havia mais as configurações corretas do SELinux. Eu realmente não preciso do SELinux na minha máquina, então resolvi o problema desabilitando completamente o SELinux. Isso é feito facilmente modificando o arquivo /etc/selinux/config
e definindo a opção SELINUX=permissive
(se você quiser manter a rotulagem do arquivo SELinux para habilitá-lo mais tarde) ou SELINUX=disabled
(desligando-o completamente).
Responder2
Encontrei isso hoje com o CentOS 7.2 no VirtualBox. Consegui ssh
entrar como usuário regular e emiti
touch /.autorelabel
Em seguida, reinicie para redefinir todos os contextos. Demora um pouco para inicializar, mas funcionou.
Responder3
Depois de usar chage
no modo de usuário único devido à senha expirada, é necessário inicializar com SELINUX=permissive
set in /etc/selinux/config
para restaurar os rótulos adequados.
Obtenha o contexto SELinux adequado para cada arquivo modificado de um sistema são ls -Z /etc/passwd /etc/shadow
e aplique o contexto de volta ao sistema quebrado.
Como umexemplo, aqui estão os conjuntos de comandos usados em um CentOS 7 após chage
-NÃO SE APLICAsem comparação de um sistema sensato (teste ou pré-produção)!
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 o contexto SELinux de qualquer arquivo que você modificou no modo único, antes de reinicializar SELINUX=enforcing
para voltar às operações normais.
Outras maneiras de copiar o contexto do SELinux estão disponíveis emComo copiar o contexto SELinux de um diretório e aplicá-lo em outro diretório?