
Ich habe eine VirtualBox-Instanz von Oracle Linux 7.2, die aus diesem Grund nicht startet Failed to start Login Service
. Beim Booten bleibt der Prozess bei dieser Meldung hängen und wird nicht fortgesetzt, sodass ich mich nicht einmal anmelden und ausführen kann systemctl status systemd-logind.service
.
Der wahrscheinliche Grund dafür ist, dass ich zsh entfernt habe, obwohl alle meine Benutzer (einschließlich root) zsh als Standard-Shell eingestellt haben (natürlich!). Danach startete die Maschine und ich gelangte zur Anmeldeaufforderung, konnte mich aber nicht anmelden, da die Shell nicht gefunden werden konnte. Ich legte dann eine Live-CD ein und ging hinein, /etc/passwd
um die Standard-Shell für Benutzer in zu ändern /bin/bash
. Danach startet der Anmeldedienst überhaupt nicht mehr. Irgendwelche Ideen, wie man das beheben kann?
Antwort1
Ich habe festgestellt, dass /etc/passwd
es nach der Änderung nicht mehr die richtigen SELinux-Einstellungen hatte. Ich brauche SELinux auf meinem Rechner nicht wirklich, also habe ich das Problem gelöst, indem ich SELinux vollständig deaktiviert habe. Dies geht ganz einfach, indem Sie die Datei ändern /etc/selinux/config
und die Option festlegen SELINUX=permissive
(wenn Sie die SELinux-Dateibeschriftung beibehalten möchten, um sie später zu aktivieren) oder SELINUX=disabled
(vollständig deaktivieren).
Antwort2
Ich habe dies heute mit CentOS 7.2 auf VirtualBox erlebt. Ich konnte mich ssh
als normaler Benutzer anmelden und habe
touch /.autorelabel
Dann neugestartet, um alle Kontexte zurückzusetzen. Das Booten dauert eine Weile, hat aber funktioniert.
Antwort3
Nach der Verwendung chage
im Einzelbenutzermodus aufgrund eines abgelaufenen Kennworts ist ein Booten mit „ SELINUX=permissive
Set in“ erforderlich /etc/selinux/config
, um die richtigen Bezeichnungen wiederherzustellen.
Holen Sie sich für jede geänderte Datei von einem funktionsfähigen System den richtigen SELinux-Kontext ls -Z /etc/passwd /etc/shadow
und wenden Sie den Kontext wieder auf das defekte System an.
AlsBeispiel, hier sind die Befehle, die auf einem CentOS 7 verwendet werden, nachdem chage
-NICHT BEWERBENohne Vergleich von einem vernünftigen System (Test oder Vorproduktion)!
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
Überprüfen Sie den SELinux-Kontext aller Dateien, die Sie im Einzelmodus geändert haben, bevor Sie einen Neustart durchführen, um SELINUX=enforcing
zum Normalbetrieb zurückzukehren.
Weitere Möglichkeiten zum Kopieren des SELinux-Kontexts finden Sie unterWie kopiere ich den SELinux-Kontext aus einem Verzeichnis und wende ihn auf ein anderes Verzeichnis an?