行き止まり、回り道

Telnetウインドウから、NSLU2初期設定で作成したアカウントを使って以下を試してみた。

# telnet 192.168.1.70

Trying 192.168.1.70...
Connected to 192.168.1.70.
Escape character is '^]'.

NSLU2 login: tom
Password:
No directory, logging in with HOME=/
Cannot execute /dev/null: Permission denied
Connection closed by foreign host.

すぐそばだがタバコには当たらなかった*1Telnetサーバは立ち上がっており私のユーザ名とパスワードは許可されたのだが、このアカウントはシェルを/dev/nullに設定したのだった。ということはWebインターフェイスで設定したユーザは確かにLinuxアカウントなのだが、アクセスに関する限り第二市民でしかないということだ。これはサービスを使うユーザに対してはごく普通の設定だが、対話型ログインは許可されない。
rootのパスワードがわからないため、Linuxアカウントに標準のroot権限でログインしようとする試みは失敗した。また一般的な管理者アカウント名(admin、root等)は役に立たなかった。今こそ別の角度から問題に取り組むときだ。
Linksysの説明書には、NSLU2で初期化されたディスクはNSLU2だけが使用できると書いてあった。しかし私はそんなことは信じなかった。ファイルシステムはソフトウェアの複雑な集合体であり、Linksysがこの装置のために新たなファイルシステムを書くなどありえない。パーテーションの具合からだろう、いくつかの情報源(とLinksysの広報担当者が認めた)がNSLU2のファイルシステムLinuxext3ファイルシステムだと書いている。とはいえ私が知る限り、NSLU2をマウントしようとした人はまだ誰もいないのだが。
NSLU2で初期化したディスクを私のMandrakeLinuxシステムの下にマウントするには怠け者すぎるので、私はMacOS XiBookext2ext3のサブセット)ドライバをダウンロードし、そのディスクをUSBポートに挿した。
Tip:私が使用したMacOS Xext2ドライバはext2 for Mac OS X SourceForge projectからダウンロードできます。またWindows NT/2000/XP用のext2ドライバはここらへんにあります。図3のようなスクリーンショットになります。
ふたつのファイルシステムが出てくる。私のデータファイルが全て含まれている大きなファイルシステムと、私が大好きなpasswdファイルを含むいくつかの設定ファイルが含まれる小さなファイルシステムだ。
図3:設定ファイルを含むファイルシステム(省略)
想像した通り、passwdファイルはシェルに/dev/nullを指定していた、私が作成したユーザーアカウントを含んでいた。しかしほんとうのシェルを持つアカウントがふたつ見つかった。rootともうひとつ、デバッグまたはリカバリ用途に使われるバックドアアカウントのように見える興味深い名前を付けられたアカウント−ourtelnetrescueuser−だ。

root:WeeOvKUvbQ6nI:0:0:root:/root:/bin/sh
bin:x:1:1:bin:/bin:
lp:x:4:7:lp:/share/spool:
mail:x:8:12:mail:/var/spool/mail:
ftp:x:14:50:FTP User:/:
nobody:x:99:99:Nobody:/:
ourtelnetrescueuser:scFf7ZMXBMl4I:100:100::/home/user:/bin/sh
guest:scEPG0VnVyqmE:501:501:::/dev/null
admin:sclzZZfodiRXY:502:501::/home/user/admin:/dev/null

test_user:scEPG0VnVyqmE:2000:501:::/dev/null
test2:scEPG0VnVyqmE:2001:501:::/dev/null
test3:sc50wKPq.zChw:2002:501:::/dev/null

しかしこのふたつのアカウントを使うためには、私にはパスワードが必要だ。私は頭がぼうっとするまでパスワード解析の道を進みつづけた結果、私がすべきことというのは以下のことなのだった。つまりpasswdファイルを書き換えることと、暗号化パスワードを私の別アカウント用の良く知っている暗号化パスワードで置き換えることだった。私は私が使っているアカウントに本物のシェルを割り当てることも出来るのだが、初心者の利便性を考えた結果、rootのための新たなパスワードを作成することとし、他のアカウントについては何もしないことした。

*1:原文は Close but no cigar. お祭りの射的のことで、この言い回しができた頃の賞品はタバコが一般的だった。弾丸が惜しくも外れた情況を指す。転じてあと一歩だが失敗は失敗だということ。