2012年4月11日水曜日

Vistaからsambaへ接続できない

samba3でも同様なようですが、原因はVistaからLAN Manager認証レベルのデフォルト値がXP以前と異なっているために接続できなくなっているようです。
コントロールパネル→管理ツール→ローカルセキュリティー ポリシー
ローカルポリシー/セキュリティー オプションのネットワーク セキュリティ: LAN Manager認証レベルのプロパティーを「NTLN応答のみ送信する」よりもセキュリティーを低くする必要があるようです。

Windows Vista から Samba 2.2 系列以前へ接続できない

いままでVistaでアクセスできないことがあったのですが、稀に接続できたこともあったのでSamba側の設定がおかしいのかとも思ったのですが、こんなところも変化があったんですね。

2012年4月10日火曜日

suが一般ユーザーで使えない

何度やっても、rootグループに追加しても一般ユーザーからrootにスイッチできない。
siriuth@mzkw04u:/tmp$ su
Password:
su: incorrect password
siriuth@mzkw04u:/tmp$

エラーメッセージで検索したところLinuxではいくつかの制御が行われているらしい。
http://www.atmarkit.co.jp/fsecurity/rensai/unix_sec04/unix_sec01.html
一つは0(wheel)グループに所属しないとsuコマンドで拒否される方法。エラーは下記のようになるようだ。
su: you are not listed in the correct secondary group (wheel) to su root.
この場合は使用したいユーザーをグループに所属させるだけ。
エラーの内容が違うがとりあえず/etc/groupを編集しrootグループにユーザーを追加させてみたがだめ、デーモンの再起動ということでリブートしてみたけどやっぱりダメでした。
もう一つはPAM(Pluggable Authentication Module)という仕組みがあるらしく、こちらでは細かい制限が行われるようだ。が、OpenWrtにそれらしいパッケージも無く、それらしいモジュールも組み込まれていない様子。

再度検索してみたところOpenWrtのフォーラムでも上がっていた。
https://forum.openwrt.org/viewtopic.php?pid=91779
実際の解決策はbusyBoxのリコンパイルが有力だが、最後に全く違う視点のアプローチ
ssh 127.0.0.1 -l root
という考え方。
ありといえばありだがちょっと残念?

ハードウェアリセットがかかる

負荷テストをやっているわけではないが、どうもメモリを使い切ったときにハングアップ状態に陥って最終的にリセットがかかっているように思える現象に陥った。
ターミナルでファイルが2948個程度のディレクトリ(backfireのpackagesフォルダ)を ls -l で表示させて落ちたので気になったので何度か行ったが再現しやすかった。

ためしにswapをオンにしたりオフにしたり切り替えてみたが状況はあまり変わらず。

最初はLuciのステータスの概要でメモリー状況を確認していたが、別のターミナルでtopでみていると、lsコマンドで47%のメモリを消費していることが瞬間的に確認ができた。
1回だけlsコマンドを実行後しばらく経ってから
Killed
という表示が行われて強制的に実行が打ち切られた感じにはなったものの、その直後にlsコマンドを実行してみるとやはりハングアップ後リセットがかかった。

直接的なのか間接的なのかログが残されていないので空想の世界でしかないが、ハードウェア的なUSB関連の問題か、rootで操作しているのが問題なのかといったところ。

実験的に使っているだけなので負荷をかけるつもりは全く無いがこの手の問題は最終的に致命的な部分になるのかも。

2012年4月8日日曜日

cronのエラー表示

この問題はkamikaze時代からあるようでwikiにもどうしようもないとかかれている。
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?OpenWrt#caca9880
現状ではこれをどのように回避するのかということで、ログそのものを消しているというのもありなようですが、これだとcronのエラーが拾えなくなるかも。
https://forum.openwrt.org/viewtopic.php?id=25225
/etc/init.d/cron
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50

start () {
        loglevel=$(uci_get "system.@system[0].cronloglevel")
        [ -z "$(ls /etc/crontabs/)" ] && exit 1
        mkdir -p /var/spool/cron
        ln -s /etc/crontabs /var/spool/cron/ 2>/dev/null
#       crond -c /etc/crontabs -l ${loglevel:-5}
        crond -c /etc/crontabs -l ${loglevel:-5} -L /dev/null
}

stop() {
        killall -9 crond
}
静かにはなりそうですが。
/var/log/cronなどに設定しておくとそれなりの出力は得られるのかも。

2012年4月7日土曜日

telnet経由でリセットを行いたいと思って調べてみるとlinuxではシェルスクリプトだけで簡単にできそうだ。
しかしopenWrtではexpectが標準では外されているようでパッケージが存在するかいろいろと調べてみたところ見つかりませんでした。

rubyで(perlでも)同様の動作をさせることができるようなのでruby、ruby-coreをopkgでインストール後スクリプトを実行したのですがリセットはできるものの終了時にエラーが。
./testruby.sh: [BUG] pthread_mutex_lock: Invalid argument (EINVAL)
ruby 1.9.2p0 (2010-08-18 revision 29036) [i486-linux]

-- control frame ----------
c:0001 p:0000 s:0002 b:0002 l:000b1c d:000b1c TOP
---------------------------

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Aborted
PTY.protect_signal を入れてみると今度は
Segmentation fault
rubyの知識は全くないのでこれ以上の詮索はやめて、暫定的な形でtelnetの対応を行するようにしておきます。