ZSH entfernt, kann nicht neu anmelden


13

Also habe ich installiert zshund es hat mir nicht gefallen. so tat ichapt-get remove zsh

Ab diesem Zeitpunkt kann ich mich nicht mehr neu anmelden, ich klicke auf meinen Benutzer. Dann kehre ich einfach zum Anmeldebildschirm zurück. Ich kann mich nur mit dem einloggen Guest session.

Ich denke, dass das Problem verursacht wird, weil die defualt Shell auf meinem Benutzer zsh ist und es nicht mehr existiert.

Wie kann ich es aus der Gastsitzung neu installieren, um die Standard-Shell meines Benutzers für Gastbenutzer zu ändern?

Ich versuche sogar, mich mit ctrl+alt+f2/6meinem Benutzer und Passwort anzumelden . Die Anmeldung ist erfolgreich, aber ich werde zurück zur Anmeldung geworfen.

Irgendwelche Ideen?


Bei einem zweiten Gedanken hatte das Schalenproblem wahrscheinlich keine Bedeutung. Nach dem Laden des DM vor dem Laden des DE wird keine Benutzer-Shell erzeugt (und das wäre wahrscheinlich auch kein Problem gewesen). Und ich bin mir auch in Bezug auf die ~/.bashrc- ~/.profileSchleife nicht sicher : Ich habe sowohl das Löschen der Benutzer-Shell als auch das Erstellen der ~/.bashrc- ~/.profileSchleife in einer VM getestet und konnte mich immer über LightDM anmelden, obwohl ich mich nicht anmelden konnte über die Konsole mit der ~/.bashrc- ~/.profileSchleife (aber immer noch funktionierte LightDM stattdessen). In jedem Fall sollten Sie meine Antwort nicht akzeptieren.
Kos

Antworten:


16

Der Gastbenutzer erhält keine Berechtigung zum Ausführen von sudooder pkexec, die erforderlich sind, um die Shell eines anderen Benutzers zu ändern (es sei denn, Sie sind Root, Sie sind nicht Root).

Die einzige Lösung, die mir einfällt, ist, in eine Root-Shell zu booten und die Shell des Benutzers als Root zu ändern:

chsh -s /bin/bash user

Wo userist der Benutzername Ihres Benutzers?


Man fragt sich, wie man das behebt, wenn Roots Shell auch zsh ist ... LiveCD?
Kevin

@ Kevin Diese Antwort ist wahrscheinlich falsch. Die Shell hat keine Auswirkungen darauf, dass der Benutzer nicht in der DE angemeldet ist, da nach dem Laden der DM vor dem Laden der DE keine Benutzer-Shell erstellt wird. Ich weiß nicht, ob es bessere Optionen gibt, falls es jemand schafft, sich auf diese Weise auszusperren, aber ich denke, dass es funktionieren sollte, eine Live-DVD zu verwenden und /etc/passwdmanuell zu wechseln .
Kos

4
@ Kevin Möglicherweise mit einer Bootoption wie init=/bin/bash.
user253751

2

Melden Sie sich als root an oder starten Sie die root-Shell und bearbeiten Sie den Shell-Eintrag in / etc / passwd nach "/ bin / sh". Dann können Sie sich wieder als Sie selbst anmelden und von dort aus Änderungen vornehmen.


1

Also zusätzlich zu dem, was @kos gesagt hat ..

Aus irgendeinem Grund habe ich hinzugefügt , source ~/.profileum meine .bashrc (weiß nicht , warum .. es irgendwo gelesen) Und meine .profileDatei geladen die .bashrcdie kreisförmige Belastung verursachen !.

Das Entfernen der source..+ @kos-Lösung hat den Trick getan!


Linux-Desktops haben das Paradigma von .profile-for-env-vars und one-per-login stuff / .bashrc-for-aliases gebrochen . Da man manchmal env-vars benötigt, um Dinge zum Laufen zu bringen, kann ich nachvollziehen, warum man es für eine gute Idee hält, von hier source ~/.profileaus zu arbeiten .bashrc. (Wenn Sie sich bei einer Desktopsitzung anmelden, wird Ihr Profil möglicherweise nicht als Quelle für das Festlegen von Umgebungsvariablen für alle untergeordneten Elemente der Sitzung verwendet.)
Peter Cordes

1

Für wen ist das Problem bei der Deinstallation von zsh. Versuchen Sie es mit den folgenden Schritten.

  1. Melden Sie sich im Wiederherstellungsmodus als root an. An dieser Antwort können Sie sehen, wie es geht. /ubuntu//a/92558/104228
  2. Nachdem Sie sich als root angemeldet haben. Öffnen /etc/passwd. Suchen Sie Ihren Benutzereintrag und wechseln Sie von /usr/bin/zshzu /bin/sh. Datei speichern und wie gewohnt neu starten. Sie sollten sich normal anmelden.
  3. Nach dem Neustart Ihres Ubuntu. Sie werden feststellen, dass Ihre Muschel so schlecht aussieht. Führen Sie diesen Befehl aus chsh -s /bin/bash. Geben Sie Ihr Passwort ein und geben Sie ein. Sie werden jetzt gut aussehen.
  4. Geben Sie sudo apt-get purge --auto-remove zshFolgendes ein, um andere Abhängigkeitspakete von zsh zu bereinigen.

Ich hoffe, dieser Schritt wird einem anderen helfen, der das gleiche Problem hat wie ich.

PS. Mein Englisch ist nicht die Hauptsprache. Ich hoffe du kannst mich verstehen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.