ttyがShまたはBashを使用するように強制する方法

ttyがShまたはBashを使用するように強制する方法

私はLinux用の対話型シェルを作成し、chshでそれをテストするために編集しました。しかし、バグがあるので、今はbash / shに戻ることはできません。マイコンピュータでコマンドを入力できず、何もできません。

Ubuntu 20.04を使用しています。

sh / bashを実行するためのパラメータを使用してシステムにsshingしようとしましたが、うまくいかなかったようで、私が作成したシェルに戻ります。

私が試したことは次のとおりです。

ssh username@hostname -p 2222 bash
ssh username@hostname -p 2222 -t bash

私のrootアカウントにはパスワードがないため、有効になっていないようです(私の考えでは)、chshを実行する他のユーザーアカウントはありません。

シェルを変更し、マシンを使用できるようにマシンにttyでShまたはBashを使用させるにはどうすればよいですか?

または、コンピュータを再インストールする以外にシェルを削除する方法はありますか?

答え1

ここで説明されている理由のため、SSHを介してこの問題を解決できないようです。

ただし、コンピュータに物理的にアクセスできる場合は、再インストールする必要はありません。

まず、ブートを一時停止し、grubコマンドラインを編集するrw init=/bin/shか、またはrw init=/bin/bash。次にファイルを編集し、/etc/passwdログインvipwシェルを合理的なものに変更します。バラより

これが不可能な場合は、いつでもライブリカバリCD / DVD / USBを使用して古いルートパーティションをマウントして/ etc / passwdを編集できます(または古いシステムとしてchrootしてchshを使用できますが、これはより複雑です)。 )。

答え2

ルート(ローカルまたはリモート)でログインできる場合は、chsh(1)ログイン変更シェルを使用できます(またはvipw(1)編集/etc/passwdと友達を使用するか、ファイルを直接編集できます)。

注意してください。インターネット上の誰も信じないでください。お読みください。そして理解する実行中のコマンドです。

関連情報