
私は魚が大好きです。私はいくつかのサービスを実行している優れた Ubuntu 8.04 Server を持っています。そこで、以前やったように /etc/passwd ファイルを編集して、デフォルトのシェルを bash から fish に変更しました。そして、はい、タイプミスをしました (ちなみに、私は chsh については知っています。それほど愚かで自信過剰です)。笑うのをやめてください。
予想通り、ログインできなくなりました。サーバーを再起動せずにログインすることは可能ですか? セーフモードでサーバーを再起動して問題を解決できることはわかっていますが、それを避けたいと思います。
ああ、そのサーバーには sudo 権限を持つ他のユーザーはいません。もう笑うのはやめてください。
ちなみに、私は ssh を使用して混乱を起こしましたが、サーバーに物理的に簡単にアクセスできます。サーバーはほんの数部屋離れています。
答え1
残念ながら、いいえ。あなたは自分自身をロックアウトしてしまいました。シェルが見つからない場合、SSH ではログインできません。試行は次のようになります/var/log/auth.log
:
Dec 23 15:04:59 ubuntu sshd[5585]: User kees not allowed because shell /bin/fish does not exist
また、コンソール上の TTY ログインでは、常に設定されたシェルを起動しようとします。sudo
権限を持つ別のユーザーがいない場合は、シングル ユーザー モードで起動して修正する必要があります。:(
答え2
ルート パスワードが設定されている場合は、マシン自体にルートとしてログインするか (X または仮想コンソールで alt-F1 を押して)、非 sudo ユーザーとしてリモート ログインしてから、ターミナルを使用してルートに切り替えることができますsu
。
もちろん、Ubuntu ではデフォルトでは root としてログインできないため、これは以前に変更したことを前提としています。
答え3
一部の設定ファイルを以前の状態に戻したい場合は、Ubuntu CD のライブ バージョンを使用してサーバーを起動し、/etc ファイルが配置されている実際のパーティションをマウントして、vi を使用して編集することで、いつでも編集を試みることができます。
より多くのユーザーに root になる権限を与えるために、/etc/sudoers ファイルを編集することもできます。