ログインすらできない場合、「ログイン: シェルなし: そのようなファイルまたはディレクトリはありません」というメッセージを修正するにはどうすればいいですか?

ログインすらできない場合、「ログイン: シェルなし: そのようなファイルまたはディレクトリはありません」というメッセージを修正するにはどうすればいいですか?

インストールしました魚魚(ユーザーフレンドリーな対話型コマンドラインシェル) を Linux サーバーにインストールしましたが、後で誰かがアンインストールしたようですが、その理由はわかりません。chsh -s /usr/local/bin/fish注意せずに実行したところ、サーバーにログインできなくなりました。エラーメッセージ「ログイン: シェルがありません: そのようなファイルまたはディレクトリはありません」が表示され、どうやらシェルフィッシュがもう存在しないことを示しています。

サーバーは CLI インターフェイスのみを提供しているので、ログインすらできない場合はどうすればログイン シェルを変更できるのでしょうか?

答え1

ルート アカウントにアクセスできる場合は、そこから を使用してユーザーのシェルを変更できますchsh -u user -s $SHELL

ブート プロセスにアクセスできる場合は、 を追加しinit=$SHELLてシングル ユーザー シェルにドロップし、 でこれを修正できますchsh -u user -s $SHELL(initrd イメージを使用した 2 段階ブートを使用する一部のシステムでは、real_init代わりに を使用する必要がある場合があります)。 おそらく、 を含むファイル システムを読み取り/書き込み可能として再マウントする必要があります/etc/passwd(mount -o remount,rw /または同様のものを使用)。

それ以外の場合、su別のユーザーからユーザーに入ることができる場合は を試してください。su user -c $SHELLまた、ユーザーに ssh で接続できる場合は のようなものを試してくださいssh user@localhost $SHELL

ライブ CD/USB を起動し、マウントし//etc/passwd手動で修正することもできます。

答え2

私も同じ問題を抱えていますが、この解決策は私にとっては有効です:

  1. ライブ CD (私は Debían 7.6 を使用) をライブ モードで起動します
  2. ライブターミナルで、次のコマンドを実行してルートアクセスを取得します。passwd root
  3. クラッシュしたディストリビューションのパーティションのディスクをマウントします
  4. このディスクに移動して、次のコマンドを実行します。cat etc/shells
  5. 魚の参照を削除しnano etc/passwd、ポイント4の有効なコンソール名を入力します。
  6. 再起動してお楽しみください。

答え3

ログインしようとすると、次のメッセージが表示されました: /sbin/nologin を実行できません: そのようなファイルまたはディレクトリはありません

これは私がやったことであり、うまくいきました。

  1. スーパーユーザー権限を持つ別のアカウントでシステムにログインしました
  2. 次のコマンドを入力します。

sudo chsh -u ユーザー -s $SHELL

ここで、userは問題のあるアカウント名です

  1. システムからログアウトする
  2. 問題が発生したアカウント名でログイン

答え4

私もElementary OS Lokiで同じ問題に直面していました。問題を解決するために、次の操作を実行しました。

  1. まず、zshに関連するものをすべて削除しますsudo apt-get remove zsh && apt-get autoremove
  2. その後私は編集しました/etc/passwdファイルを確認し、root ユーザーのシェルが定義されていないことがわかったので、シェル /bin/bash を編集しました。これで問題が解決しました。

関連情報