Kann / bin / false nicht ausführen: Keine solche Datei oder kein solches Verzeichnis

10

Ich versuche, GNU Screen mit dem folgenden Befehl unter meinem Mac OS zu öffnen :

host:~ user$ screen

Das Bildschirmterminal öffnet sich, stirbt jedoch schnell mit der Fehlermeldung:

Kann / bin / false nicht ausführen: Keine solche Datei oder kein solches Verzeichnis

Mein Terminal ist so konfiguriert, dass die bashShell beim Start geöffnet wird . Ich habe versucht, die Terminal-Shell auf einzustellen sh, es gibt den gleichen Fehler.

Wenn ich jedoch den screenBefehl als ausführe sudo, ist der Befehl erfolgreich.

Wie löse ich es für den normalen Benutzer?

Sultan des Swing
quelle
2
Suchen Sie nach /bin/falseIhren rc-Dateien ( .bashrc, .bash_profileetc.) auch Ihre überprüfen .screenrc.
Choroba

Antworten:

9

Sehen Sie in Ihren Shell-Initialisierungsskripten nach bashoder in der screenKonfigurationsdatei nach, ob falsemit dem expliziten Pfad irgendwo etwas verwendet wird /bin/false.

Unter macOS befindet sich das falseDienstprogramm in /usr/bin, nicht in /bin.

Andernfalls überprüfen Sie, ob Ihre Anmeldeshell aus irgendeinem Grund auf "Aktiviert" eingestellt ist /bin/false, indem Sie /etc/passwddie "Erweiterten Optionen" im Abschnitt "Benutzer & Gruppen" der Systemeinstellungen überprüfen oder anzeigen (Sie erhalten diese, indem Sie mit der rechten Maustaste auf Ihren Benutzer klicken in der Liste der Benutzerkonten, und Sie können die Shell auch hier ändern). Jemand hat gedankenlos gefolgt ein Tutorial / Howto die Sätze auf einen Benutzer mit /bin/falseals Standard - Shell.

Wenn Sie laufen screenmit sudoIhnen nutzen root‚s Shell / Bildschirm init - Dateien. Deshalb funktioniert das.

Kusalananda
quelle
2
Entschuldigung, durch Drücken der Eingabetaste wurde versehentlich der unvollständige Kommentar gepostet. Ich habe die folgenden Dateien überprüft: / etc / passwd und ~ / .screenrc. Es scheint jedoch, dass meine Shell mit / bin / false als Standard-Shell eingerichtet wurde. Als ich ein "echo $ SHELL" machte, gab es "/ bin / false". Durch "export SHELL = / bin / bash" wurde das Problem behoben. :)
Sultan.of.swing
1
@ sultan.of.swing Gut! Sie sollten Ihre Standard-Shell in den Systemeinstellungen ändern . Wenn dies Ihr Problem löst, ziehen Sie bitte in Betracht , die Antwort zu akzeptieren
Kusalananda
5

Gehen Sie zu den Einstellungen auf dem Terminal und dann zu Allgemein. Wählen Sie dann unter 'Shell öffnen mit' Befehl aus und geben Sie bash -l ein

Ravi
quelle
3
Bitte erläutern Sie, was dies bewirkt und wie es das Problem löst.
Guntbert
ist das "bash - <Capital Eye>" oder "bash - <Uncial Ell>"?
Reb.Cabin
Die beste Antwort ist
Reb.Cabin