web-dev-qa-db-ja.com

元のシェルが「壊れている」場合は、別のシェルでログインします

私はなんとか壊滅的に愚かで新人レベル以下の何かをすることができました。

FreeBSD VPSにクリーンインストールしてから、バージョン9.1(9から)にアップグレードします。いくつかの異常な理由で、最初にscreenをインストールするのではなく、pkgを介してbashをインストールしました。

次に、両方のユーザーのシェルを変更しました[〜#〜] and [〜#〜] root。両方のアカウントで再度ログインしようとすると、2つのアカウントしかないため、google-fuが回答を取得できなかったという奇妙なエラーが発生します。パスワードとを入力した後、「/ usr/local/bin/bash:Undefined symbol "_ThreadRuneLocale"%」が表示されます。サーバーから起動します。コンソールから同じことをしてみました。

私は自分のアカウントと自分のroot、天才から自分自身をロックアウトすることができたので、別のシェルでログインする方法があるのだろうかと思っていますが、この問題を回避しています。

Ssh @ -i/bin/sh ..を試してもうまくいかない場合は、まったく同じエラーが発生します。

TIA

4
SteveMustafa

これは完全な仮想マシンですか、それともFreeBSD jail VPSですか?前者の場合、プロバイダーはVMのコンソールへのOOBアクセスを提供していますか?その場合は、デフォルトで/bin/shを使用するシングルユーザーでサーバーを再起動し、そこからchshまたはvipwを使用してルートシェルを/bin/cshに戻すことができます。あなたが好む。

VPSがFreeBSDjailである場合、またはOOBコンソールにアクセスできない場合は、プロバイダーのサポートチームに連絡して、rootユーザーのシェルを/bin/cshに戻すように依頼する必要があります。彼らは最小限の手間であなたのためにこれを行うことができるはずです。

本当にbashをルートシェルとして使用したい場合は、代わりにtoorユーザーまたはrootを使用してください。これはそのような目的のために提供されているため、快適な環境をセットアップできます自分を締め出すリスクなしに。ただし、昇格された特権で操作していることを思い出させるために、rootをそのままにしておくことをお勧めします。

3
D_Bye

sshは、ログイン後に常に構成済みのシェルを使用し、それを使用して要求したプログラムを開始します。必要なのは、開始する別のサブシステムです。デフォルトではsshとsftpがあり、/etc/ssh/sshd_configに独自のものを追加してみることができます。

Subsystem  binsh /bin/sh

sftpを使用して/etc/ssh/sshd_configをダウンロードし、変更し、再度アップロードし、何らかの方法でマシンを再起動することにより)次に、

ssh -s -l <account> <machine> binsh

注:テストされていません。つまり、壊れた場合は、ピースを保持することができます。

1
Coroos