Anmeldung nicht möglich: Anmeldedienst konnte nicht gestartet werden

8

Ich habe eine VirtualBox-Instanz von Oracle Linux 7.2, die wegen nicht gestartet werden kann Failed to start Login Service. Während der Startsequenz hängt der Prozess an dieser Nachricht und wird nicht fortgesetzt, sodass ich mich nicht einmal anmelden und ausführen kann systemctl status systemd-logind.service.

Die wahrscheinliche Ursache dafür ist, dass ich zsh entfernt habe, während alle meine Benutzer (einschließlich root) zsh als Standard-Shell festgelegt haben (duh!). Danach startete der Computer und ich kam zur Anmeldeaufforderung, konnte mich aber nicht anmelden, da die Shell nicht gefunden wurde. Ich legte dann eine Live-CD ein und ging in /etc/passwd, um die Standard-Shell für Benutzer zu ändern /bin/bash. Danach wird der Anmeldedienst überhaupt nicht mehr gestartet. Irgendwelche Ideen, wie man das behebt?

lmazgon
quelle

Antworten:

9

Ich fand heraus, dass es nach dem Ändern /etc/passwdnicht mehr die richtigen SELinux-Einstellungen hatte. Ich brauche SELinux auf meinem Computer nicht wirklich, daher habe ich das Problem gelöst, indem ich SELinux vollständig deaktiviert habe. Dies können Sie einfach ändern, indem Sie die Datei ändern /etc/selinux/configund die Option SELINUX=permissive(wenn Sie die SELinux-Dateibeschriftung beibehalten möchten, um sie später zu aktivieren) oder SELINUX=disabled(vollständig deaktivieren) festlegen .

lmazgon
quelle
1
Dieser Fehler tritt auch auf, wenn das Root-Passwort aus dem Single-Boot-Wiederherstellungsmodus geändert wird.
Shaun Dewberry
Das Einstellen disabledfür mich hat funktioniert, aber nicht permissive, Prost!
dspacejs
1

Nach der Verwendung chageim Einzelbenutzermodus aufgrund eines abgelaufenen Kennworts muss mit SELINUX=permissiveset in /etc/selinux/configgestartet werden, um die richtigen Beschriftungen wiederherzustellen.

Holen Sie sich den richtigen SELinux-Kontext für jede geänderte Datei von einem vernünftigen System mit ls -Z /etc/passwd /etc/shadowund wenden Sie den Kontext wieder auf ein defektes System an.

Als Beispiel finden Sie hier eine Reihe von Befehlen, die auf einem CentOS 7 verwendet werden, nachdem chage- NICHT ohne Vergleich eines vernünftigen Systems (Test oder Vorproduktion) angewendet werden!

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 mit neu starten SELINUX=enforcing, um zum normalen Betrieb zurückzukehren.

Weitere Möglichkeiten zum Kopieren des SELinux-Kontexts finden Sie unter Kopieren des SELinux-Kontexts aus einem Verzeichnis und Anwenden auf ein anderes Verzeichnis.

Yves Martin
quelle
3
oder bequemer laufen restoreconoder fixfiles restoreweiter /etc/passwd. Wenn mehr Dateien vorhanden sind, z. B. /etc/passwd-falsch beschriftet, ist es umfassender, sie nur auszuführen fixfiles restore. Oder fixfiles onbootund starten Sie neu; Dies kann theoretisch zuverlässiger sein.
Sourcejedi
Vielen Dank. Ich muss noch mehr über SELinux lernen ...
Yves Martin
0

Ich bin heute mit CentOS 7.2 auf VirtualBox darauf gestoßen. Ich konnte mich sshals regulärer Benutzer anmelden und ausstellen

touch /.autorelabel

Anschließend neu gestartet, um alle Kontexte zurückzusetzen. Das Booten dauert eine Weile, hat aber funktioniert.

mike-mike-mit-jod
quelle