Невозможно войти: не удалось запустить службу входа

Невозможно войти: не удалось запустить службу входа

У меня есть экземпляр VirtualBox Oracle Linux 7.2, который не запускается из-за Failed to start Login Service. В процессе загрузки процесс зависает на этом сообщении и не продолжается, поэтому я даже не могу войти в систему и выполнить systemctl status systemd-logind.service.

Вероятная причина этого в том, что я удалил zsh, в то время как все мои пользователи (включая root) установили zsh в качестве оболочки по умолчанию (ну да!). После этого машина запустилась, и я получил приглашение на вход, но не смог войти, так как оболочка не была найдена. Затем я вставил Live CD и зашел, /etc/passwdчтобы изменить оболочку по умолчанию для пользователей на /bin/bash. После этого служба входа вообще не запускается. Есть идеи, как это исправить?

решение1

Я обнаружил, что после изменения /etc/passwdу него больше не было правильных настроек SELinux. Мне на самом деле не нужен SELinux на моей машине, поэтому я решил проблему, полностью отключив SELinux. Это легко сделать, изменив файл /etc/selinux/configи установив опцию SELINUX=permissive(если вы хотите сохранить маркировку файлов SELinux, чтобы включить ее позже) или SELINUX=disabled(полностью отключить ее).

решение2

Я столкнулся с этим сегодня с CentOS 7.2 на VirtualBox. Я смог sshвойти как обычный пользователь и выдал

touch /.autorelabel

Затем перезагрузил, чтобы сбросить все контексты. Загрузка занимает некоторое время, но сработало.

решение3

После использования chageв однопользовательском режиме из-за истечения срока действия пароля необходимо выполнить загрузку с SELINUX=permissiveустановленными настройками /etc/selinux/configдля восстановления правильных меток.

Получите правильный контекст SELinux для каждого измененного файла из исправной системы ls -Z /etc/passwd /etc/shadowи примените контекст обратно к сломанной системе.

Какпример, вот набор команд, используемых в CentOS 7 после chage-НЕ ПРИМЕНЯТЬбез сравнения с нормальной системой (тестовой или предпроизводственной)!

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

Просмотрите контекст SELinux любого файла, который вы изменили в одиночном режиме, прежде чем перезагружать систему, SELINUX=enforcingчтобы вернуться к нормальной работе.

Другие способы копирования контекста SELinux доступны по адресуКак скопировать контекст SELinux из одного каталога и применить его к другому каталогу?

Связанный контент