管理者パスワードが違います:解決2009年01月03日 16時25分30秒

LANDISK HDL-F320をdebian化してしばらくしたらLANDISK標準のweb設定時のログインができなくなった件ですが、解決しました。

CGIのperlスクリプト(/usr/local/www/gate/subr.pl)を修正してapacheのログを出力するようにして眺めていたところ、何のことはない、sudoコマンドのエラーで失敗しているだけでした。

管理者パスワードが変っているわけではなく、/etc/sudoersの設定に問題があるだけだったということです。

  • 管理者パスワードをチェックするために実行しているコマンドが/etc/shadowファイルを参照している
  • そのコマンドの実行のためにsudoコマンド経由で実行している
  • sudoコマンドの実行時のリターンコードが0かどうかをパスワードチェックするperlスクリプトがチェックしている
  • sudoコマンドの失敗でもパスワードの比較失敗でも同じエラー判定となってしまう

ちなみに、パスワードチェックのためのperlスクリプトは/usr/local/www/gate/subr.pl内のcheck_login関数部分。実際のパスワードチェックは/usr/local/bin/authadminコマンドでチェックしています。

/etc/sudoersには以下の行を追加。

apache  ALL=(root) NOPASSWD: ALL

また、/etc/shadowの変更のされ方を見たところ、adminユーザがLANDISKの管理者として処理されているようです。

KURO-BOX/HG debian環境でsyslog-ng動作不良2009年01月04日 02時01分16秒

KURO-BOX/HGをdebian化して利用していますが、syslog-ngの起動ではまっています。

apt-get install syslog-ng

でインストール自体は問題ありません。 ログもきちんと記録されます。

しかし、KURO-BOXを再起動すると、syslog-ngは起動していてもログが出力されない。

/etc/init.d/syslog-ng restart

すればログは正常に出力されるようになります。

玄箱のrunlevelは2なので/etc/rc2.d/S**syslog-ngも確かに存在しますが、途中で出力が止まってしまいます。

syslog-ngの場合

  •   :
  •   :
  • Jan 4 01:51:27 KURO-BOX kernel: kjournald starting. Commit interval 5 seconds...
  • Jan 4 01:51:27 KURO-BOX kernel: EXT3-fs: mounted filesystem with ordered data mode.
  • Jan 4 01:51:27 KURO-BOX kernel: VFS: Mounted root (ext3 filesystem) readonly.
  • Jan 4 01:51:27 KURO-BOX kernel: change_root: old root has d_count=2
  • 以降出力されない

syslogdの場合

  •   :
  •   :
  • Jan 4 01:51:27 KURO-BOX kernel: fff70000:4f4b4f4b
  • Jan 4 01:51:27 KURO-BOX kernel: kjournald starting. Commit interval 5 seconds
  • Jan 4 01:51:27 KURO-BOX kernel: EXT3-fs: mounted filesystem with ordered data mode.
  • Jan 4 01:51:27 KURO-BOX kernel: VFS: Mounted root (ext3 filesystem) readonly.
  • Jan 4 01:51:27 KURO-BOX kernel: change_root: old root has d_count=2
  • Jan 4 01:51:27 KURO-BOX kernel: Freeing unused kernel memory: 188k init
  • Jan 4 01:51:27 KURO-BOX kernel: Adding Swap: 257032k swap-space (priority -1)
  • Jan 4 01:51:27 KURO-BOX kernel: EXT3 FS 2.4-0.9.17, 10 Jan 2002 on ide0(3,1), internal journal
  • Jan 4 01:51:27 KURO-BOX kernel: kjournald starting. Commit interval 5 seconds
  • Jan 4 01:51:27 KURO-BOX kernel: EXT3 FS 2.4-0.9.17, 10 Jan 2002 on ide0(3,3), internal journal
  • Jan 4 01:51:27 KURO-BOX kernel: EXT3-fs: mounted filesystem with ordered data mode.
  • Jan 4 01:51:27 KURO-BOX kernel: Trying to free nonexistent resource <80004600-80004607>
  • Jan 4 01:51:28 KURO-BOX ntpdate[361]: adjust time server 210.173.160.57 offset 0.365830 sec
  • Jan 4 01:51:28 KURO-BOX avahi-daemon[564]: Found user 'avahi' (UID 105) and group 'avahi' (GID 110).
  • Jan 4 01:51:28 KURO-BOX avahi-daemon[564]: Successfully dropped root privileges.
  • Jan 4 01:51:28 KURO-BOX avahi-daemon[564]: avahi-daemon 0.6.16 starting up.
  • Jan 4 01:51:29 KURO-BOX avahi-daemon[564]: Successfully called chroot().
  • Jan 4 01:51:29 KURO-BOX avahi-daemon[564]: Successfully dropped remaining capabilities.
  • Jan 4 01:51:29 KURO-BOX avahi-daemon[564]: No service found in /etc/avahi/services.
  • Jan 4 01:51:29 KURO-BOX avahi-daemon[564]: netlink.c: bind(): Operation not permitted
  • Jan 4 01:51:50 KURO-BOX inetd[597]: telnet/tcp: unknown service
  • Jan 4 01:51:56 KURO-BOX ntpd[820]: ntpd 4.2.2p4@1.1585-o Sun Mar 4 13:27:01 UTC 2007 (1)
  • Jan 4 01:51:56 KURO-BOX ntpd[826]: precision = 2.000 usec
  • Jan 4 01:51:56 KURO-BOX ntpd[826]: Listening on interface wildcard, 0.0.0.0#123 Disabled
  • Jan 4 01:51:56 KURO-BOX ntpd[826]: Listening on interface lo, 127.0.0.1#123 Enabled
  • Jan 4 01:51:56 KURO-BOX ntpd[826]: Listening on interface eth0, 192.168.1.113#123 Enabled
  • Jan 4 01:51:56 KURO-BOX ntpd[826]: kernel time sync status 0040
  •   :
  •   :

LANDISK HDL-F320でのログイン失敗2009年01月04日 19時44分32秒

debian化していろいろといじってからrebootするとsshでの一般ユーザからのログインができなくなってしまいました。

ログイン時のエラーメッセージは以下

System bootup in progress - please wait

実はブート中は/etc/nologinというファイルが作られて上記のメッセージはこのファイルの中身です。

で、/etc/rc2.d/S99rmnoloinスクリプトで上記のファイルは削除されるはすなのですが、このスクリプトの直前に実行される/etc/rc2.d/S99rc.localの中でルートデバイスがリードオンリーにremountされているので、ファイルの削除に失敗してしまいます。

というわけで、/etc/rc2.d/S99rc.localよりも前にrmnologinスクリプトを実行するようにすれば、解決します。

例えば、/etc/rc2.d/S99rmnologinを/etc/rc2.d/S98rmnologinに名前を変えるなどを行えばOKです。

・・・・というのは実は間違い。

rc2.d以下のスクリプトではrc.localは2度実行されるようになってしまっていました。S99rc.localとS99z.localの2回です。恐らく、LANDISKとしてはS99z.localが標準でDebian Linuxとしての標準のファイルであるS99rc.localは後からのapt-get dist-upgradeなどで追加されたものだと思われます。

したがって、S99rc.localを削除すればOK。

玄箱/HG関連リンクと現在の玄箱/HGの状態2009年01月09日 07時37分22秒

忘れないようにメモ。

ちなみに当方の玄箱/HGの状態は以下。

KURO-BOX:~# uname -r
2.4.17_mvl21
KURO-BOX:~# cat /etc/issue
Debian GNU/Linux 4.0 \n \l
KURO-BOX:~# gcc -v
Using built-in specs.
Target: powerpc-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --disable-softfloat --enable-targets=powerpc-linux,powerpc64-linux --with-cpu=default32 --enable-checking=release powerpc-linux-gnu
Thread model: posix
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
KURO-BOX:~# runlevel
N 2
KURO-BOX:~#

ブラッディ・マンディの組込み的考察2009年01月11日 07時02分33秒

ハッカーが大活躍するドラマ、「ブラッディ・マンディ」についての突っ込みです。 実は録画だけしておいて観たのが1月に入ってからだったので・・・

本当の考察はこちらが詳しいです。すごいですね彼。

以下、気がついたことを羅列してみます。

キーボード叩きすぎ!

予め用意したスクリプトを実行しているのは周知のことですが、その実行結果を待ってから次のスクリプトを実行という「演出」が全くありません。あれは何かを入力したら少し待って、という演出をすべきでした。そして待っている間の少しのイライラ感が必須。 待っている間、スクリプト書きながら・・・というのならばエディタも開いて 欲しかった。

何でもかんでもネットワークに繋がりすぎ!

最終回ですね。 時限装置はネットワークに繋がないし、繋げられない。繋ぐ意味が分からない。何で最後にあんな設定にしたんでしょうかね。仮にあったとしても脚本上は「時限装置は通常はネットワークには繋がない」、「試してみる」、「繋がっていた!」というプロセスは必須でしょう。あせりすぎです。常識で考えたら素人な制作者側だって分かるでしょう。携帯電話の操作と連携して時限装置を作動させるなんていう設定も良くありますが、敵対する立場の人間がハッカーだということが分かっているわけですからむしろネットワークを物理的に遮断するのが必然。

電源長もちしすぎ!

ファルコンのノートPCいくらなんでもバッテリー長もちしすぎでしょう。 予備のバッテリーパックを持ち歩いている、置いているなどの何気ない演出が必要。

音を出しすぎ

「ファルコン画面」で音を出すのが番組上の効果音という設定ではなく、実際に出ている設定なのだとしたら「馬鹿でしょう?」

ネットワークに繋がりすぎ!再び

さて、最終回の時限装置がネットワークに繋がっている理由は心拍計と遠隔で繋がる必要性から・・・ということで説明することは出来なくもありません。但しその場合はZigBeeなどの無線を使う子機位置づけの機器とTCP/IP接続可能な親機のセットが必要です。

それが一つの機器にまとまるなら、それこそいきなり無線LAN接続する必要がある。そんなものが小さな機器にまとまらないし、バッテリーも持たない。無線LANにしたって、ネットワーク接続するアクセスポイントが必要なわけで、必要な機器構成的には何を使っても結局は同じ。 つまり、以下を全てクリアしないといけない。

  • 心拍計の無線方式、ZigBee/Bluetooth/無線LAN/携帯電話経由
  • 心拍計の接続方法、有線時限装置接続/無線時限装置接続/ネットワーク経由接続
  • 心拍計のバッテリ
  • 心拍計と接続するネットワーク接続機器があるのであればその電源
  • ネットワーク経由の場合、グローバルIPアドレスを振った時限装置制御サーバをわざわざ構築する必要がある
  • ネットワーク接続するなら7セグメントLED表示なんかいらない

古い定番の時限装置の表示器

そうそう。大抵7セグメントLED使いますよね。あれもお話としては分かりやすいんですがむしろ使わない方が「通」というか。特に今回の話ではそこら辺は必須だったんではないかと思います。何で犯罪者がわざわざ分かりやすく表示してくれることを考えるんでしょうか? 設定操作もマトリックスキー入力などで行う場合の確認表示に 使うからあんな簡単な表示でも重宝するわけで、それをネットワーク経由で済ますのならばいらない。

ちなみに原作は・・

読んでないです。 その辺は原作ではしっかりしていたんでしょうかね?

というように書いてみて、特に「組込み的」考察でもなんでもないな、と自分にも突っ込みを入れてみる。