Arch LinuxVPSへのncursesのインストールを壊したと思います。 SSHでログインできなくなり、次のエラーが発生します。
$ ssh [email protected]
Last login: Mon Oct 26 08:56:59 2015 from 0.0.0.0
-bash: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory
Connection to xyz.com closed.
私は今何をすべきか本当にわかりません。サーバーでtmuxセッションを実行しています。ポートなどを転送して、ローカルマシンから接続する方法はありますか?
VPSホスティングプロバイダー(DigitalOcean)のおかげで、Arch ISOで起動し、システムのパーティションをマウントし、次のようにpacman
を使用してシステムアップグレードを実行できました。
$ mount /dev/vda1 /mnt/Arch
$ pacman --root /mnt/Arch --cachedir /mnt/Arch/var/cache/pacman/pkg --config /mnt/Arch/etc/pacman.conf -Syyu
これで問題は解決しました。
話の教訓:Arch Linuxでは部分的なアップグレードを行わないでください。
ログインシェルが起動しない場合は、ログインできません。クライアントはサーバーに文字列を送信し、文字列を解釈するのはサーバー上のユーザーのログインシェル次第です。クライアントには、サーバーに「代わりに他のコマンドを実行する」ように指示する方法がありません。
これはセキュリティメカニズムです。ユーザーのシェルで実行できることが制限されている場合、ユーザーは許可されていないことを実行できません。
システム上のすべてのアカウントへのアクセスをブロックした場合は、物理アクセスや回復コンソールなど、通常のログインをバイパスする方法を使用する必要があります。
いくつかのヒント:
/etc/shells
に追加するだけです。bash-static
またはsash
に似たものに設定するか、 toor account (rootがログインするための代替方法)を設定します。 Sudo
も壊れることがあることに注意してください。ランダムに生成され(一意で記憶されていない)、金庫に保管している紙に書き留めた緊急パスワードをtoorアカウントに設定することをお勧めします。