シェルエラーのためログインに失敗しました。

シェルエラーのためログインに失敗しました。

私は頻繁に最新バージョンのログインシェル(zsh)を実行します。昨日、最新バージョンがバグになってすぐにダウンになりました。バグがあるシェルへのリンクを修正できるように、安定したバージョンを実行している他の端末が開いているため、端末で実行することは大きな問題ではありません。しかし、愚かなことに、/etc/passwdにある不良シェルを再起動して有効にしましたが、ログインプロンプトが出たときに不良シェルのためにログインできませんでした。この問題を解決する方法があるのか​​、代替シェルを設定する方法があるのか​​、またはデフォルトに欠陥がある場合は、ログイン時に他のシェルを求めるメッセージが表示されるかどうか疑問に思います。実際にバックアップインストールまで再起動してそのように回復したのですが、ちょっと苦手ですね。

ベストアンサー1

シェルが完全にバグがあり、呼び出し時にエラーで終了する場合は、シェルおよび/または終了コードを実行し、それ自体を代替手段として使用するPOSIXシェルスクリプトである偽シェルを作成できます。

#!/bin/sh

# this is usually some incredibly limited shell like dash
fallback_shell=/bin/sh
primary_shell="$(getent passwd `whoami` | cut -d: -f7)"

"$primary_shell" || "$fallback_shell"

おすすめ記事