岩本といいます。

On Mon, 12 Oct 2009 10:53:25 +0900
Mitsuhiro Nakamura <chiauz...@mbd.nifty.com> wrote:

> 事の始まりは、使用していて一般ユーザからrootに
> なろうと、suコマンドを実行した所rootになれなかっ
> た所からでした。
> 
> パスワードは訊いてくるのですが、入力してもroot
> にはなれず、そうこうしているうちに間違えてexit
> して接続を切断してしまいました。

このrootになれないというのは、
・認証に失敗する(Sorryと表示される)
・他の何らかのエラーが表示される
・何も起こらず、元のユーザのプロンプトが表示される
・その他
のどれでしょうか?

また、この時他のコマンドの実行で問題が出ていませんでしたか?


> その後、再接続を試みると/etc/motdの内容が表示
> された直後に切断されるようになりました。

この状況だと、ログインシェルが正しく実行できていないっぽいですね。
他のコマンドの実行に問題が無かったならば、tcshに何らかの問題が
発生しているのだと思います。

suでrootになれなかったのも、おそらく同じ原因のような気がします。
かなり前から/bin/cshと/bin/tcshの実体は同じ物になっていますので。

| s...@mikasa% ls -li =tcsh =csh
| 70800 -r-xr-xr-x  2 root  wheel  350440 Jul 15 03:11 /bin/csh
| 70800 -r-xr-xr-x  2 root  wheel  350440 Jul 15 03:11 /bin/tcsh

sshでのリモートからのコマンド実行は、ログインシェルを利用してコマンドが
実行されますので、ログインシェルがまともに動かない場合は利用できません。

ログインシェルの起動を迂回してログインシェルを変更する事はできません。
もしできたら、それはセキュリティホールという事になります。
まあ、アカウント情報が外にあったり(NIS等)、ログインシェルを変更する
インターフェースが外に向けて開いていたり(Webmin等)する場合は別ですが、
そういう場合ではないですよね?


On Thu, 15 Oct 2009 20:26:54 +0900
Mitsuhiro Nakamura <chiauz...@mbd.nifty.com> wrote:

> これは、もうシェル関連に何らかの障害が発生していると考えた方が、
> いいでしょうか?業者は、一応、リブートとfsckまでは無償で対応して
> くれるようですので、場合によってはそういう対応が必要かなと考えて
> おります。仮に、復旧するとすれば、最低限何が必要だと考えられます
> でしょうか。

tcshの問題だとすると、普通ならばコンソールからrootでログインしてもらい、
ユーザのログインシェルを/bin/sh辺りに変更してもらうのでしょうが、今回の
場合はコンソールからもrootでログインできなさそうに思います。
その場合、シングルユーザモードで起動してログインシェルを変更する必要が
あると思います。
なんにしても、業者の手助けは必要になると思います。

> 最初にlibiconvを導入している時に、suしようとしたら、正常にsuがか
> からなかったのでおかしいと思っているので、何らかの他の障害の可能
> 性も考えられるでしょうか?

前述したように、/bin/cshと/bin/tcshの実体は同じ物なので、tcshに
問題が起きた時にsuでrootになれないというのは十分ありえます。
# 他の問題である可能性は否定しませんが

portsからbashやzshを入れて使っていたのならばlibiconvを変に入れてしまい
起動しなくなるというのも考えられますが、tcshだと関係なさそうですね。

| s...@mikasa% ldd =tcsh =bash =zsh
| /bin/tcsh:
|         libncurses.so.7 => /lib/libncurses.so.7 (0x80067d000)
|         libcrypt.so.4 => /lib/libcrypt.so.4 (0x8007c9000)
|         libc.so.7 => /lib/libc.so.7 (0x8008e2000)
| /usr/local/bin/bash:
|         libncurses.so.7 => /lib/libncurses.so.7 (0x8006ce000)
|         libintl.so.8 => /usr/local/lib/libintl.so.8 (0x80081a000)
|         libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x800923000)
|         libc.so.7 => /lib/libc.so.7 (0x800b20000)
| /usr/local/bin/zsh:
|         libpcre.so.0 => /usr/local/lib/libpcre.so.0 (0x8006b3000)
|         libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x8007e0000)
|         libncursesw.so.7 => /lib/libncursesw.so.7 (0x8009dd000)
|         libm.so.5 => /lib/libm.so.5 (0x800b36000)
|         libc.so.7 => /lib/libc.so.7 (0x800c51000)

どちらかというと、libiconvの前に行った作業が関係しているように思います。
libiconvのインストールの前に何をしていましたか?

-- 
いわもと こういち(s...@iwmt.org/s...@postfix.jp/s...@teraterm.net)
# なるようになれ、明日もイケイケ♪

メールによる返信