手元の iPhone 3GS ios4.3.3 は JB 済みではあるが、OpenSSH は入れていない。
なので大丈夫だろうと最近まで root と mobile のパスワードを alpine のまま
放置していた。
しかし、やっぱり不安なので変えることにした。passwd コマンドを実行すべく
cydia から mobileterminal を入れたのだが起動してもすぐ終わってしまう。
どうやら cydia にある mobileterminal は ios4 では動かないらしい。
じゃぁどうするか。sshd を動かしてリモートからログインすれば良いのだろうが
どうしても OpenSSH は入れたくない。
もともと FreeBSD な Mac なので /etc/passwd もとい /etc/master.passwd
を直接いじれば良いんじゃないかと思い、ifuse --root で rootfs ごと mount して
/etc/master.passwd を見ると、ありました。mobile と root のパスワードの
ハッシュが同じで以下のようになってた。
: (snip)
root:/smx7MYTQIi2M:0:0::0:0:System Administrator:/var/root:/bin/sh
mobile:/smx7MYTQIi2M:501:501::0:0:Mobile User:/var/mobile:/bin/sh
: (snip)
/s の salt の crypt ということで、openssl passwd -crypt -salt /s hoge で求
めた値を直接設定しちゃえと思たのだが、、、
ここでふと昔のことを思い出した。お客さんのところの Mac OS X の /etc/resolv.conf
を直接いじったのは良いが、なんだか名前解決できない場合があった。
で、結局 GUI から DNS サーバを変更して解決したことがあった。
→Mac OS でファイルの直接編集はヤバい?
なのでここはぐっと我慢して、いろいろ調べたところ、mobileterminalのβ版
が ios4 でも動くらしいという情報が Web にあった。
Installation - mobileterminal
http://code.google.com/p/mobileterminal/wiki/Installation
上記 URL には手動でインストールする方法も書いてある。Mac と Win だけだが。
しかし Mac の項を読むと、どうやら iphone の特定の場所に deb パッケージを
コピーして再起動しているだけっぽい。
# Cyberduck だの iFunbox だの Win や Mac の人は大変なんやね…(他人事)
まずは mobileterminal の 520_1 というバージョンを落とした。
$ cd /var/tmp
$ wget http://mobileterminal.googlecode.com/files/MobileTerminal_520-1_iphoneos-arm.deb
$ sha1sum MobileTerminal_520-1_iphoneos-arm.deb
84410af6febf2065a2a7fabea49cd5b9f34575f9 MobileTerminal_520-1_iphoneos-arm.deb
んで、ifuse で --root マウント。
$ ifuse --root /media/iphone
上記ドキュメントを読むと、/var/root/Media/Cydia/AutoInstall/ に deb を
コピーすればいいらしいが、このディレクトリが無い場合は作れと。
$ mkdir /media/iphone/private/var/root/Media/Cydia/AutoInstall
で、コピー。
$ cp /var/tmp/MobileTerminal_520-1_iphoneos-arm.deb /media/iphone/private/var/root/Media/Cydia/AutoInstall/
そしたら iphone を再起動。正常起動するかどうかちょっとドキドキした。
再起動後 mobileterminal のアイコンが画面にあった。
ちなみに /var/root/Media/Cydia/AutoInstall/ の下においた deb は無くなっ
てた。
あとは普通に passwd コマンドで mobile と root のパスワードを変えた。
あれ? mobileterminal ってどうやって終わらせるの? exit しても残ってる。
Web 調べるとタップホールドでメニューが出るらしいが、このバージョンは
駄目みたい。仕方ないのでホームボタンダブルクリックからプロセスブチ切り。
再起動後手元の Linux から find -mtime -10 とかして /etc やら /var の
下で変更されているファイルを調べてみたが、関連してそうなファイルは
/etc/master.passwd, /etc/passwd くらいしかなかったので、おそらく直接
編集しても良かったのかもしれないが…
まぁこれで一安心ということで。
0 件のコメント:
コメントを投稿