Anmeldung nicht möglich: Anmeldedienst konnte nicht gestartet werden

Anmeldung nicht möglich: Anmeldedienst konnte nicht gestartet werden

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/passwdum 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/passwdes 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/configund 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 sshals 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 chageim Einzelbenutzermodus aufgrund eines abgelaufenen Kennworts ist ein Booten mit „ SELINUX=permissiveSet 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/shadowund 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=enforcingzum 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?

verwandte Informationen