68user's page 掲示板

Prev< No. 1225〜1241> Next  [最新発言に戻る] [過去ログ一覧]
No. 1225 # ノリスケ 2000/10/05 (木) 14:40:19
質問させてください。
perlで、ログをファイルではなくDBMで管理するBBSを作っています。
ところが、プロセス間でDBMの排他制御を行う方法が分かりません。
もし知っていたらご教授ください。
おねがいします。

No. 1226 # aki 2000/10/05 (木) 17:00:31
申し訳ございません
もう一度同じような質問させてください
メーリングリストを作っていまして
パイプを通してプログラムに渡したのですが

----- Transcript of session follows -----
sh: mysite-filter not available for sendmail programs
554 | "/usr/local/lib/mailing-list/mysite-filter"... Service unavailable

のようなメッセージがきまして
メールがプログラムに渡っていません・・・
この場合、どのようなミスが考えられるのでしょう?

多分初歩的なミスだと思いますが
よろしくお願いします・・・

No. 1227 # tam [E-mail] 2000/10/05 (木) 17:20:21
はじめまして。

perlでradiusの認証クライアントを作成したいのですが、
perlのモジュールでAuthin::radiusというものがあって、
それを使用して作成したのですが、二重ログインしようとしてしまい、
二重ログインは不可の設定にしていますので、ログインできません。
と言う経緯で、1から作成しようと思います。
Sokcetのモジュールで、ポートを指定して、
ソケットを生成するのは一緒だと思うのですが、
radiusサーバに送るリクエストをどのように記述していいのかがわかりません。
radius サーバはDTC Radius Ver 2.03です。

どなたかご存じの方は教えていただけないでしょうか。
よろしくお願い致します。

No. 1228 # ミワ [E-mail] 2000/10/05 (木) 18:36:43
ミワと申します。
シグナルについて質問させてください。

レンタルサーバーなどでは、スクリプトが一定時間動き続けていると、
TERMシグナル?が飛んでくるよ と聞いたことがあるんですが
(クライアントがブラウザを閉じたり、中止をしたときも)
私が使っているサーバーで実験してみたんですが
全く飛んできませんでした。
無限ループとかになってしまった場合どうするのか
など心配になってきたんですが(telnetでkillすればいいんですが)、
これはサーバー側の設定がなにかあるんでしょうか?
#環境は Cobalt Linux & Apache です。

お分かりになる方、ご教授お願いします。

#実験で使ったPerlスクリプトはここにあります。
http://www.offside.ne.jp/~icon_store/sig/signal.txt

No. 1229 # 2000/10/05 (木) 20:18:05
TCP/IPの構造体についてなら
http://www.kurasc.kyoto-u.ac.jp/plasma-group/data/misc/doc/koala
にて概要はつかめるのではないでしょうか。
ただ,話がUNIXよりなのは fj.lecture だからかしらん。

No. 1230 # 68user 2000/10/06 (金) 06:32:12
@aki さん
> sh: mysite-filter not available for sendmail programs
/etc/sendmail.cf に P=/foo/bar/smrsh という部分がある
なら、P=/bin/sh として、sendmail を再起動してください。
それでもダメならわかりません。

もしうまくいったなら、see smrsh(8)。smrsh を使い続けるならば、
/usr/libexec/sm.bin/ 以下にコマンドを置くべきでしょう。

@ノリスケさん
> ところが、プロセス間でDBMの排他制御を行う方法が分かりません。
おそらく DBM には排他の仕組みはないと思います。flock/symlink/mkdir
などを使って、自前でロックするしかないと思います。

@tam さん
> perlでradiusの認証クライアントを作成したいのですが、
これはさっぱりわかりません。radius 自体あまり理解していないので…。

@の さん
> http://www.kurasc.kyoto-u.ac.jp/plasma-group/data/misc/doc/ko
じゃなくて、カーネルソースを読む際に参考になるドキュメントは
ないだろうか、という意味じゃないでしょうか。

@ミワさん
> シグナルについて質問させてください
これは後ほど。というか、忘れちゃったので実験しないと。
# 時間がないなぁ…

なお、apache では httpd.conf で、Timeout 300 などと
設定されています。

No. 1231 # ミワ 2000/10/06 (金) 15:02:16
ご教授ありがとうございます。

>なお、apache では httpd.conf で、Timeout 300 などと
>設定されています。

サーバー管理者に”TELL”シグナルを送って確認したところ
デフォルトのまま触ってないので、Timeout 300 になってるっス
という返答が帰ってきました。
なぜでしょう??
何かほかの部分がマズいのでしょうか?

よろしければ、ご教授お願いします。

No. 1232 # 68user 2000/10/06 (金) 17:01:04
基本的に、ブラウザを中断しても SIGTERM は飛んできません。
が、子プロセスがいる場合などに飛んでくる場合もあります。
前に調べたときはたしかそういう結論になったような覚えがあります。
# つまりよくわからなかったということ。

No. 1233 # aki 2000/10/06 (金) 17:30:02
68userさんありがとうございました
/usr/adm/sm.bin/ に置いたらできるようになりました!
また何かあったらよろしくお願いします。

No. 1234 # hsj 2000/10/06 (金) 19:57:43
@tamさん
RADIUSはRFCで規定されていたはずなので
認証パケットのフォーマットやプロトコルの詳細はそれを見ればわかると思います。
#ぼくはつくったことはありません
アクセスサーバとの連携が必要だと思うので、ちょっとばかりめんどくさい事に
なりそうですが・・・。

@ミワさん
ぼくも詳しくないのですがアレですが、
Apache1.3.12のソースをナナメ読みした限りでは、
タイムアウト後にSIGTERMとSIGKILLが飛んでくるように
なっているようにみえました。
で、FreeBSD4.0-RELEASE + Apache_1.3.12で実験してみたところ、
その通りに動作しているようにみえます。
#ちなみに、SIGKILLはトラップできないのが正しい動作ですね
もしかしてですが、ログをつくるディレクトリの
書き込み権限が落ちてるとかはないですか?

No. 1235 # ミワ 2000/10/06 (金) 20:38:28
@68user さん

68user さん、hsj さん、ご教授ありがとうございます。

>基本的に、ブラウザを中断しても SIGTERM は飛んできません。
>が、子プロセスがいる場合などに飛んでくる場合もあります。
>前に調べたときはたしかそういう結論になったような覚えがあります。
># つまりよくわからなかったということ。

なるほど。そうなんですか。
前に見た情報は間違っていた可能性がたかそうですね。

>もしかしてですが、ログをつくるディレクトリの
>書き込み権限が落ちてるとかはないですか?

それはlogディレクトリのことでしょうか?
私が使っているサーバーは、自分のアカウントで入ると
最初の階層にはwebというディレクトリしかないんです。
(web内はweb領域になってます)
なので、エラーログなど見たことがないんですよ。
これっておかしいですよね。
logディレクトリを作れば、その中にエラーログやアクセスログが書き込まれて
今回の問題も解決するものなのでしょうか?
(.htaccessなどで設定する?)

No. 1236 # hsj 2000/10/07 (土) 02:25:23
@ミワさん
>それはlogディレクトリのことでしょうか?
いえ、そうではなくてsignal.logが書き込まれるディレクトリです。
web(nobody?)権限での書き込みができなければ動きませんよね。
・・・が、よく考えると
>全く飛んできませんでした。
とおっしゃってますし、とくにエラーになるとも書かれてませんね・・・。
と言うわけで、コレはハズしてそうです。
かき混ぜてスミマセン。

>これっておかしいですよね。
それは、ftpdがchrootされてるのでしょう。
セキュリティの確保が目的だと思います。
#CGIが使えるんだから、あまり意味が無いと言えば無いのですが(笑

No. 1237 # ミワ 2000/10/07 (土) 03:13:05
@hsj さん
>>全く飛んできませんでした。
>とおっしゃってますし、とくにエラーになるとも書かれてませんね・・・。

エラーにはなってないと思うんですが、ちょっと自信がないです。

>それは、ftpdがchrootされてるのでしょう。
>セキュリティの確保が目的だと思います。

なるほど、セキュリティの為に意図的に設定してあるんですね。


もしかして KeepAlive は関係しているのでしょうか?
http://japache.infoscience.co.jp/japanese_1_3/manual/keepalive.html

KeepAliveがoffに設定してあると、KeepAliveTimeoutが適応されて
Timeoutに移行する という解釈でいいのでしょうか?
#はずしてそうですが...

No. 1238 # 68user 2000/10/07 (土) 18:03:37
@aki さん
> /usr/adm/sm.bin/ に置いたらできるようになりました!
で終わってしまうと、スキルアップにつながらないので、
僕がどうやって調べたかってのを書いておきます。


パーミッションを落としたりして適当にいろいろ試してみるが、
FreeBSD 4.0-RELEASE では同じエラーを出せない。

というわけで、sendmail のソースを探す
        % locate /sendmail/
どうやら /usr/src/contrib/sendmail らしい。
        % cd /usr/src/contrib/sendmail
ソースから available for sendmail という文章を探す
        % grep "available for sendmail" */*
        smrsh/smrsh.c: fprintf(stderr, "%s: %s not available for sendmail programs\n",
smrsh って何? コマンドのようだが…
        % man smrsh
「smrsh - sendmail用に制限されたシェル」だそうな。特定の
ディレクトリに置いてあるプログラムしか、~/.forward や
/etc/aliases から呼び出せないらしい。

sendmail.cf から sh か smrsh を探す
        % egrep '/bin/(sh|smrsh)' /etc/mail/sendmail.cf
        Mprog, P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/,
なるほど。FreeBSD のデフォルトでは /bin/sh を使っているので
同じエラーは出ないわけね。


あと、最初に質問した掲示板に、解決したことを書き込んでおく
べきでしょう。

No. 1239 # noiz [E-mail] 2000/10/10 (火) 11:52:41
はじめまして。
よろしくお願いします。

wwwboard.cgiを拝見して、これは...! と思っていただきました。
些末なことなのですが、自分の間借のWebスペースにテスト設置してみて
気付いたことを報告します。

コメントアウトしてスクリプトのご説明をされている部分で、
ディレクトリ配置のご説明でlockとされているディレクトリ名が
my変数の定義ではlockdirとなっていました。ありがたいことに
細かく動作チェックできるのですぐに修正できましたが、為念。

---

wwwboard.cgi設置に際して、自分の方に別の問題があります。
こちらでお聞きしていいものかどうか判断せずに書き込みしていますので、
不適当であれば無視してください。

問題
スクリプトの実行権限の種別が、所有者権限(個人のアカウント名)、
nobody権限のいずれでもなくwwwの権限となる。
書き込みはできるが、生成されるログのOwnerがwwwとなり、
ぼくのアカウントではログの削除ができなくなる (^^;

ぼくの方の環境 (ISPにWebページ用の領域を間借している形態です)
・WebサーバのOS : RS/6000
・CGI設置場所の制限 : 個人のhomeディレクトリ以下であればどこでも可
・wwwboard.cgiで使用するコマンドのうちnamazuとmd5が使用不可

動作チェックの出力の結果
http://www.ad.il24.net/~noiz/bbs/wwwboard.cgi?test

No. 1240 # tam [E-mail] 2000/10/10 (火) 14:43:51
フォローありがとうございます。
radiusのこともまだ知ったばかりですので、
知らないことがいっぱいです、もっと調べなければ...

No. 1241 # has 2000/10/10 (火) 15:01:06
@noizさん
はじめまして。
私も同じ掲示板を使っています。

削除に関しては、管理モードなどの追加(自作)をするのが
一番かも妥当なのかも知れません。
掲示板のログファイルの形式を見ていただくと、
一括方式にしろ分割方式にしろ、1件ごとの書き込みは
わかりやすい形式で保存されていると思いますので、
単純なサブルーチンでもって管理可能なのではないかと思います。

# 本当はどうするのがいいですかね>68user

Prev< No. 1225〜1241> Next  [最新発言に戻る] [過去ログ一覧]