Wie behebe ich „Anmeldung: Keine Shell: Keine solche Datei oder kein solches Verzeichnis“, wenn ich mich nicht einmal anmelden kann?

Wie behebe ich „Anmeldung: Keine Shell: Keine solche Datei oder kein solches Verzeichnis“, wenn ich mich nicht einmal anmelden kann?

ich installierteFischFisch(eine benutzerfreundliche interaktive Befehlszeilen-Shell) auf einem Linux-Server, später hat es jemand deinstalliert, aber ich weiß es nicht. Nachdem ich es chsh -s /usr/local/bin/fishohne Vorsicht ausgeführt habe, kann ich mich jetzt nicht mehr beim Server anmelden. Die Fehlermeldung „login: no shell: Keine solche Datei oder kein solches Verzeichnis“ wurde angezeigt, was anscheinend bedeutet, dass Shell Fish nicht mehr existiert.

Der Server stellt nur eine CLI-Schnittstelle bereit. Wie kann ich also die Anmelde-Shell ändern, wenn ich mich nicht einmal anmelden kann?

Antwort1

Wenn Sie Zugriff auf den Root-Account haben, können Sie von dort aus die Shell für einen Benutzer ändern, indem Sie verwenden chsh -u user -s $SHELL.

Wenn Sie Zugriff auf den Startvorgang haben, können Sie anhängen, init=$SHELLum zu einer Einzelbenutzer-Shell weitergeleitet zu werden, wo Sie dies wieder mit beheben können chsh -u user -s $SHELL(einige Systeme, die einen zweistufigen Start mit einem Initrd-Image verwenden, erfordern möglicherweise, dass Sie real_initstattdessen verwenden). Sie müssen das Dateisystem, das es enthält, wahrscheinlich erneut /etc/passwdals Lese-/Schreibzugriff mounten (mit mount -o remount,rw /oder ähnlich).

Andernfalls, wenn Sie susich von einem anderen Benutzer aus bei dem Benutzer anmelden können, versuchen Sie es mit . su user -c $SHELLWenn Sie sich per SSH bei dem Benutzer anmelden können, könnten Sie etwas wie versuchen ssh user@localhost $SHELL.

Sie können auch von einer Live-CD/USB booten, diese manuell mounten /und reparieren ./etc/passwd

Antwort2

ich habe das gleiche Problem, diese Lösung funktioniert bei mir:

  1. Booten Sie mit einer Live-CD (ich verwende Debian 7.6) im Live-Modus
  2. Erhalten Sie im Live-Terminal Root-Zugriff, indem Sie den folgenden Befehl ausführen:passwd root
  3. Mounten Sie die Festplatte der Partition Ihrer Crash-Distribution
  4. Gehen Sie zu dieser Festplatte und führen Sie den folgenden Befehl aus:cat etc/shells
  5. Entfernen nano etc/passwdSie die Fischreferenzen und geben Sie einen gültigen Konsolennamen von Punkt 4 ein
  6. Neustart und Spaß haben.

Antwort3

Beim Versuch, mich anzumelden, erhielt ich diese Meldung: /sbin/nologin kann nicht ausgeführt werden: Keine solche Datei oder kein solches Verzeichnis

Das habe ich gemacht und es hat bei mir funktioniert.

  1. Ich habe mich mit einem anderen Konto mit Superuser-Berechtigungen im System angemeldet
  2. Geben Sie den folgenden Befehl ein:

sudo chsh -u Benutzer -s $SHELL

wobei „Benutzer“ der Kontoname mit dem Problem ist

  1. Ausloggen aus dem System
  2. Melden Sie sich mit dem Kontonamen an, bei dem das Problem aufgetreten ist

Antwort4

Ich hatte auch das gleiche Problem in Elementary OS Loki. Um das Problem zu lösen, habe ich Folgendes durchgeführt

  1. zuerst entferne ich alles was mit zsh zu tun hat durchsudo apt-get remove zsh und apt-get autoremove
  2. danach bearbeitete ich die/etc/passwdDatei und habe festgestellt, dass die Shell des Root-Benutzers nicht definiert ist. Daher habe ich die Shell /bin/bash bearbeitet und dies alles hat mir geholfen, das Problem zu lösen.

verwandte Informationen