そうなんですよ。なかなかネットワークの構造体について わかりやすい説明って詳しいないんですよね。 特にFreeBSDの場合は・・・ 誰か知っていたら教えてください。 |
残念ながら、僕は知らないです。僕の持っている UNIX カーネル 関連の書籍にも、TCP/IP は載ってませんでした。 BSD Magazine No.4 に、IP の話が少し載ってますが、 構造体の説明はありません。 というわけで、解説書いて(笑)>yuji さん |
そうですね。つくってみますか! っていってもなかなか・・・ 理解した分だけ作っていくのは いいかもしれません。あとあと 役に立ちますし。 ええ、BSD Magazine No.4 に書いてありましたね。 どのような流れでデータが動いているのかは 理解するのに役に立ったと思います。 |
LocalAddr => 'localhost'を削除したら、外部からのアクセスに反応することを こちらでも確認できました。 #しかし普段からLinux使ってるのにnetstatしなかった私って…ごめんなさい(汗) それから、Perldocというものが自分のマシンに入っていることも実は知りませんでした。 昨日からネット上で検索かけまくって、やっとPerldocの存在を知りました。 さっそくperldoc -m IO::Socketして読んでみます。 68userさん、早急な解答ありがとうございました。 |
はじめてここに書きこみさせていたただきます よろしくお願いします。 今メーリングリストを開設しようと思っています サーバーはLinuxで aliasesファイルに転送先のメンバーリストファイルを指定したのですが 開かず、悩んでいます ----- The following addresses had permanent fatal errors ----- <aki@my-member.com> :include: /home/sites/www.my-recruit.com/web/recruit/bin/Mailing-list/mylist-member-list (expanded from: <aki@my-member.com> ) ----- Transcript of session follows ----- 550 :include: /home/sites/www.my-recruit.com/web/recruit/bin/Mailing-list/mylist-member-list... Cannot open /home/sites/www.my-recruit.com/web/recruit/bin/Mailing-list/mylist-member-list: Group writable directory 554 <aki@my-member.com> ... aliasing/forwarding loop broken -------------------------------------------------------------------------------- のようなメッセージが帰ってきます。 ファイルのパーミッションは644です すでに1週間と一日・・・私くじけそうです・・・ もしわからる方いらっしゃいましたらお願いします。 |
> Group writable directory グループが書き込めるディレクトリ、だから危険なので 実行するのはや〜めた、と言ってます。 |
68userさんありがとうございます パーミッションをいろいろ試したのですが・・・開きません ファイルやディレクトリのパーミッションを もしよろしければ、どうすればファイルを開いてくれるのか教えてください よろしくお願いします・・・ |
すみません、私のミスでした・・・ ディレクトリのひとつのパーミッションがおかしかっただけです う〜んこんなこと気づかないなんて・・・ ありがとうございました〜 |
質問させてください。 perlで、ログをファイルではなくDBMで管理するBBSを作っています。 ところが、プロセス間でDBMの排他制御を行う方法が分かりません。 もし知っていたらご教授ください。 おねがいします。 |
申し訳ございません もう一度同じような質問させてください メーリングリストを作っていまして パイプを通してプログラムに渡したのですが ----- Transcript of session follows ----- sh: mysite-filter not available for sendmail programs 554 | "/usr/local/lib/mailing-list/mysite-filter"... Service unavailable のようなメッセージがきまして メールがプログラムに渡っていません・・・ この場合、どのようなミスが考えられるのでしょう? 多分初歩的なミスだと思いますが よろしくお願いします・・・ |
はじめまして。 perlでradiusの認証クライアントを作成したいのですが、 perlのモジュールでAuthin::radiusというものがあって、 それを使用して作成したのですが、二重ログインしようとしてしまい、 二重ログインは不可の設定にしていますので、ログインできません。 と言う経緯で、1から作成しようと思います。 Sokcetのモジュールで、ポートを指定して、 ソケットを生成するのは一緒だと思うのですが、 radiusサーバに送るリクエストをどのように記述していいのかがわかりません。 radius サーバはDTC Radius Ver 2.03です。 どなたかご存じの方は教えていただけないでしょうか。 よろしくお願い致します。 |
ミワと申します。 シグナルについて質問させてください。 レンタルサーバーなどでは、スクリプトが一定時間動き続けていると、 TERMシグナル?が飛んでくるよ と聞いたことがあるんですが (クライアントがブラウザを閉じたり、中止をしたときも) 私が使っているサーバーで実験してみたんですが 全く飛んできませんでした。 無限ループとかになってしまった場合どうするのか など心配になってきたんですが(telnetでkillすればいいんですが)、 これはサーバー側の設定がなにかあるんでしょうか? #環境は Cobalt Linux & Apache です。 お分かりになる方、ご教授お願いします。 #実験で使ったPerlスクリプトはここにあります。 http://www.offside.ne.jp/~icon_store/sig/signal.txt |
TCP/IPの構造体についてなら http://www.kurasc.kyoto-u.ac.jp/plasma-group/data/misc/doc/koala にて概要はつかめるのではないでしょうか。 ただ,話がUNIXよりなのは fj.lecture だからかしらん。 |
@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 などと 設定されています。 |
ご教授ありがとうございます。 >なお、apache では httpd.conf で、Timeout 300 などと >設定されています。 サーバー管理者に”TELL”シグナルを送って確認したところ デフォルトのまま触ってないので、Timeout 300 になってるっス という返答が帰ってきました。 なぜでしょう?? 何かほかの部分がマズいのでしょうか? よろしければ、ご教授お願いします。 |
基本的に、ブラウザを中断しても SIGTERM は飛んできません。 が、子プロセスがいる場合などに飛んでくる場合もあります。 前に調べたときはたしかそういう結論になったような覚えがあります。 # つまりよくわからなかったということ。 |
68userさんありがとうございました /usr/adm/sm.bin/ に置いたらできるようになりました! また何かあったらよろしくお願いします。 |
@tamさん RADIUSはRFCで規定されていたはずなので 認証パケットのフォーマットやプロトコルの詳細はそれを見ればわかると思います。 #ぼくはつくったことはありません アクセスサーバとの連携が必要だと思うので、ちょっとばかりめんどくさい事に なりそうですが・・・。 @ミワさん ぼくも詳しくないのですがアレですが、 Apache1.3.12のソースをナナメ読みした限りでは、 タイムアウト後にSIGTERMとSIGKILLが飛んでくるように なっているようにみえました。 で、FreeBSD4.0-RELEASE + Apache_1.3.12で実験してみたところ、 その通りに動作しているようにみえます。 #ちなみに、SIGKILLはトラップできないのが正しい動作ですね もしかしてですが、ログをつくるディレクトリの 書き込み権限が落ちてるとかはないですか? |
@68user さん 68user さん、hsj さん、ご教授ありがとうございます。 >基本的に、ブラウザを中断しても SIGTERM は飛んできません。 >が、子プロセスがいる場合などに飛んでくる場合もあります。 >前に調べたときはたしかそういう結論になったような覚えがあります。 ># つまりよくわからなかったということ。 なるほど。そうなんですか。 前に見た情報は間違っていた可能性がたかそうですね。 >もしかしてですが、ログをつくるディレクトリの >書き込み権限が落ちてるとかはないですか? それはlogディレクトリのことでしょうか? 私が使っているサーバーは、自分のアカウントで入ると 最初の階層にはwebというディレクトリしかないんです。 (web内はweb領域になってます) なので、エラーログなど見たことがないんですよ。 これっておかしいですよね。 logディレクトリを作れば、その中にエラーログやアクセスログが書き込まれて 今回の問題も解決するものなのでしょうか? (.htaccessなどで設定する?) |
@ミワさん >それはlogディレクトリのことでしょうか? いえ、そうではなくてsignal.logが書き込まれるディレクトリです。 web(nobody?)権限での書き込みができなければ動きませんよね。 ・・・が、よく考えると >全く飛んできませんでした。 とおっしゃってますし、とくにエラーになるとも書かれてませんね・・・。 と言うわけで、コレはハズしてそうです。 かき混ぜてスミマセン。 >これっておかしいですよね。 それは、ftpdがchrootされてるのでしょう。 セキュリティの確保が目的だと思います。 #CGIが使えるんだから、あまり意味が無いと言えば無いのですが(笑 |
@hsj さん >>全く飛んできませんでした。 >とおっしゃってますし、とくにエラーになるとも書かれてませんね・・・。 エラーにはなってないと思うんですが、ちょっと自信がないです。 >それは、ftpdがchrootされてるのでしょう。 >セキュリティの確保が目的だと思います。 なるほど、セキュリティの為に意図的に設定してあるんですね。 もしかして KeepAlive は関係しているのでしょうか? http://japache.infoscience.co.jp/japanese_1_3/manual/keepalive.html KeepAliveがoffに設定してあると、KeepAliveTimeoutが適応されて Timeoutに移行する という解釈でいいのでしょうか? #はずしてそうですが... |
@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 を使っているので 同じエラーは出ないわけね。 あと、最初に質問した掲示板に、解決したことを書き込んでおく べきでしょう。 |
はじめまして。 よろしくお願いします。 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 |
フォローありがとうございます。 radiusのこともまだ知ったばかりですので、 知らないことがいっぱいです、もっと調べなければ... |
@noizさん はじめまして。 私も同じ掲示板を使っています。 削除に関しては、管理モードなどの追加(自作)をするのが 一番かも妥当なのかも知れません。 掲示板のログファイルの形式を見ていただくと、 一括方式にしろ分割方式にしろ、1件ごとの書き込みは わかりやすい形式で保存されていると思いますので、 単純なサブルーチンでもって管理可能なのではないかと思います。 # 本当はどうするのがいいですかね>68user |
ああ、僕を含めて 3人目のユーザを確認。ちゃんとサポートなんか してみたりして。 > スクリプトの実行権限の種別が、所有者権限(個人のアカウント名)、 > nobody権限のいずれでもなくwwwの権限となる。 www は nobody と同じようなものだと思ってください。そのサイト 全てのユーザの CGI が www 権限で動きますので、状況は nobody と 変わりません。 > 書き込みはできるが、生成されるログのOwnerがwwwとなり、 > ぼくのアカウントではログの削除ができなくなる (^^; ファイルの削除ができるかどうかは、ファイルのオーナーとは 関係ありません。そのファイルの置いてあるディレクトリに Write パーミッションがあるかどうかです。 現状では umask 002 としていますので、 separate_log/000/ (ディレクトリ) separate_log/000/00001 (ファイル) のパーミッションは、それぞれ 775,664 になるはずです。 で、OS が BSD 系ならば削除はできるはずです。なぜなら、 separate_log/ は owner:group が 68user:realuser で、パーミッションが 757 という状況で、ユーザ www が separate_log/000/ (ディレクトリ) separate_log/000/00001 (ファイル) を作ろうとすると、 separate_log/000/ は owner:group=www:realuser で、パーミッションが 775 separate_log/000/00001 は owner:group=www:realuser で、パーミッションが 664 となるはずです。親ディレクトリのグループを引き継いでいる ところがミソですね。 ところが、SysV 系では、作成したファイル・ディレクトリの グループは、ファイル・ディレクトリ作成者の実効 GID となるので、 仮に CGI の実行が uid:gid=www:www で行われるとしたら separate_log/000/ は owner:group=www:www で、パーミッションが 775 separate_log/000/00001 は owner:group=www:www で、パーミッションが 775 となり、separate_log/000/00001 は、CGI 経由でないと 消せなくなります。 # ここらへんの動作を決める要素は、他にも sgid bit があるけど、略。 # なお、Linux だと mount 時のオプションでどちらの挙動をするかを # 決められます。 というわけで、まずは削除ができるかどうか試してみてください。 RS/6000 の OS が BSD 系ならば消せるでしょう。 # でも多分 AIX だろうから、SysV だよなぁ…。しかし、RS/6000 を # 使っている ISPか。金持ちだ (いくらか知らんけど)。 > 削除に関しては、管理モードなどの追加(自作)をするのが > 一番かも妥当なのかも知れません。 へい、作りまっせ〜。何か要望があれば今のうちに言ってください。 数日経ってやる気が失せる前に (笑) > my変数の定義ではlockdirとなっていました こちらも直します。 |
68userさんありがとうございました 大変勉強になりました! おかげさまでだんだんコツがつかめてきました〜 またひとつ、同じ流れで質問させてください メールをプログラムに落とし、perlで処理をして転送と言う簡易な処理はできるようになったのですが、 ファイルのオープン処理やファイル作成などができません デバックではうまく出来ているのですが・・・?? よろしければまた、お願いします |
hasさん、68userさん、ありがとうございます。 ははあ、とりあえず www 権限は nobody 権限と考えていいんですね。 68user さんのご指摘通り、生成された分割ログのパーミッションは、 ディレクトリ=775、ファイル=644、となっています。で、結論から 言って削除できませんでした (泣笑)。Web サーバは FTP ポート しか開放されていないので、Mac/Win の FTP クライアントで ログファイルの削除を試してみましたが、Permission Denied で はねられました。 >> 削除に関しては、管理モードなどの追加(自作)をするのが >> 一番かも妥当なのかも知れません。 > へい、作りまっせ〜。何か要望があれば今のうちに言ってください。 > 数日経ってやる気が失せる前に (笑) 厚かましいのですが、ぜひぜひお願いします。ぼくはプログラム全般 ぜんぜん分からないので、ログまわりの改造をしていただけると使うのに 何のハードルもなくなってありがたいです。 また質問があるのですが、検索で使用する namazu は Perl 版で良いのでしょうか? |
煩瑣になってすいません。ログファイルのパーミッションは以下のとおりです。 ×644 ○664 |
> へい、作りまっせ〜。何か要望があれば今のうちに言ってください。 > 数日経ってやる気が失せる前に (笑) んじゃあ、キャッシュのほう、情報を表示のに加えて、 削除とかもできるようにしといてもらえますか? # ここのキャッシュ、合計100MBってちゃんと消さないと:-p うちの方は、携帯から見やすいようにしたり、カレンダーなどと 組み合わせてみたりといろいろいじってしまい、 追加された機能を自分のに反映するのに苦労しそうです…。 |
せっせと作っております。機能設計書も詳細設計書も、 テスト仕様書もないプログラミングはなんと楽しいことか…。 @has > んじゃあ、キャッシュのほう、情報を表示のに加えて、 > 削除とかもできるようにしといてもらえますか? あい、了解です。あと、ソース送ってちょーだいな。 採り入れられる機能は採り入れます。 @noiz さん > 検索で使用する namazu は Perl 版で良いのでしょうか? namazu (の一部) は C言語で書かれているため、コンパイルが 必要です。ログインできないなら、あきらめた方がよいでしょう。 # プロバイダのマシンにコンパイラがあるかどうかわからないし、 # もしあったとしても namazu 環境を構築した経験がない # なら、とても苦労するでしょう。 簡易検索機能でも付けるかなぁ…。 @aki さん > メールをプログラムに落とし、perlで処理をして転送と言う > 簡易な処理はできるようになったのですが、 メーリングリストサーバを自作しているんですか? > ファイルのオープン処理やファイル作成などができません > デバックではうまく出来ているのですが・・・?? 実行権限が違うとか、環境変数が足りないとか、原因はいろいろ 考えられますので、これだけの情報ではわかりません。 /tmp あたりに適当にファイルを作ってみて、ファイルの オーナーを確認したり、環境変数を全部表示させたりすれば わかるかもしれません。 |
68userさん ありがとうございます。結局 CGI の改造をお願いすることに なってしまいましたが、嬉しいです。 はい、namazu で検索はあきらめます :-) でも検索機能がなくてもぼくにはもったいないくらいです。 |
いつもお世話になっています。 私の質問掲示板に.htaccessのdenyについての質問がきたのですが..,。 68userさん、ちょっと見てもらえますか。よろしくお願い致します。 http://www.parkcity.ne.jp/~chaichan/qanda/qa246.htm |
どうも、ご無沙汰しております、yujiです。^^ 現在、ソケットファイルを作成したいのですが、 その方法がわからず、困っております。 UNIXドメインソケットファイルの使い方はいろいろなサイトに記述されて いるのですが、根本となるUNIXドメインソケットファイルの作成の 仕方について触れているサイトを見つけることができませんでした。^^; もしなにかご存知でしたら、どうぞよろしくお願いします。 それでは、また。^^ |
どうも、yujiです。^^ 下の記事の訂正なのですが、 簡単にUNIXドメインソケットファイルを 作成するコマンドはないのかなと思いまして。 すいませんが、よろしくお願いします。 |
@ちゃいぱさん > 私の質問掲示板に.htaccessのdenyについての質問がきたのですが..,。 > 68userさん、ちょっと見てもらえますか。 えっと、こういう形での回答依頼はご勘弁を。答えたければ 答えるし、興味がなければ/知らなければ答えない、ということで。 今回の件に関しては、既にどなたかが書いておられますが deny from .XXXXX.ocn.ne.jp というふうに先頭に . を付けるか、ホスト名が逆引きされて いないならIP アドレスでの制限をする、くらいしか思い 付きませんでしたが、 deny from dion.ne.jp がうまくいっているなら外れっぽいですね。後は「どうやって うまくいかないと確認したのか。その確認方法が間違っている のではないか」くらいでしょうか。 @yuji さん > 簡単にUNIXドメインソケットファイルを作成するコマンドは > ないのかなと思いまして。 多分ないと思います。FIFO (名前付きパイプ) とは違って、ソケット ファイルはサーバ側のプロセスが必ず存在していなければいけない ので (必ずソケットに bind されていないといけない)、仮に 「作成するコマンド」があったとしても、その「ソケットファイルを 作成したプロセス」が終了した瞬間にソケットファイルは無効となります。 # という説明でいいのかしら…。FIFO は mkfifo や mknod コマンドで # 作れます。念のため。 |
いつもお世話になっています。 > こういう形での回答依頼はご勘弁を。 すみません、ついあまえちゃって、68userさんに振ってしまう私です...。 切り札使いすぎました。以後、気を付けます。 > その確認方法が間違っているのではないか 質問者に尋ねて見ます。 いつもながら、アドバイスありがとうございます。 違う意味で、今後もよろしくお願い致します。 |
http://virtys.virtualave.net/cgi-bin/so.cgi こーゆー、SNMPに外部からアクセスできるかどうかを調べるには、 どしたらいいですか? Perlでやりたいんですが。。 UNIXのコマンドとかあるのかな? |
掲示板ですが、こんな感じでどうでしょうか。 http://X68000.startshop.co.jp/~68user/tmp/wwwboard.cgi 「管理者モード」というのを追加しました。パスワードは 「abc」です。管理者モードからは、記事の削除、キャッシュの削除、 各種カスタマイズができます。 テスト用なので、好きにいじっていただいて構いません。 has からは > 消したいキャッシュをマークしてから[削除]とかのボタンを > 押すと消せる、というような感じがいいです。 という要望を頂いておりますが、使いやすいインタフェースが 思い付かず、未実装です。よさげな案があれば提案してもらえますか? 動作チェック・キャッシュ情報は、web 上からの設定変更で 一般に公開しないモードにできるようにしました。 それと、管理者用のパスワードですが、CGI 経由で設定 できるようにすると、CGI が nobody/www 権限で動く場合、 どうやってもセキュリティホールが出きてしまうので、 面倒ですが直接スクリプトを手で書き換えるようにしています。 あと、ちょっと手を広げすぎて、バグがたくさん残ってますので、 現在のバージョンは未完成品です。 @yamama さん > SNMPに外部からアクセスできるかどうかを調べる 残念ながら SNMP は全くわからないのでパスです。 |
掲示板、さっそくテスト書き込み・削除をしてみました。 管理モードで一気に堕落しそうです :-P 自分のところでもテストで設置して試してみます。 |
@yamamaさん おそらく対象サーバのSNMPのポートにアクセスして、 publicで情報が引っぱれるかどうかチェックしているだけでしょう。 要はSNMPクライアントの簡易版を実装しているんだと思います。 多分コマンド一発でお手軽に、みたいなのは無いと思いますが ほぼ決め打ちで行けると思うのでそんなに面倒でもないと思います。 もちろんperlでも可能ですが、最低SNMPの認証部分のプロトコルを 解っていなければいけないでしょうね。 |
@68user > という要望を頂いておりますが、使いやすいインタフェースが > 思い付かず、未実装です。よさげな案があれば提案してもらえますか? たとえば"checkbox"を使って、 <INPUT NAME="check" TYPE="checkbox" VALUE="1">キャッシュ1<BR> <INPUT NAME="check" TYPE="checkbox" VALUE="2">キャッシュ2<BR> 連想配列/パーサの都合で困難そうであらば、 <INPUT NAME="check1" TYPE="checkbox" VALUE="x">キャッシュ1<BR> <INPUT NAME="check2" TYPE="checkbox" VALUE="x">キャッシュ2<BR> なんていう風なのを想像してたんですけど、どうですかね? # "checkbox"なのに名前が全部違うってのはきれいじゃないか… |
> たとえば"checkbox"を使って、 やってみました。削除するなら最近の発言を削除することが 多いだろう、ということで http://X68000.startshop.co.jp/~68user/tmp/wwwboard.cgi http://X68000.startshop.co.jp/~68user/tmp/wwwboard.cgi?mode=admin&passwd=abc こんな感じ。どんなもんでしょ? さらに前のは「前の50件」ボタンで 表示できるようにするつもりですが、未実装です。 あと、 > 消したいキャッシュをマークしてから[削除]とかのボタンを > 押すと消せる、というような感じがいいです。 これって s/キャッシュ/ログファイル/ の typo じゃないかと 思っていたのですが、キャッシュも checkbox で選択して 消したい、ということですか? スクリプトに書いてある「TODO」の部分が今後の課題です。結構増えました。 http://X68000.startshop.co.jp/~68user/tmp/wwwboard.txt というわけで、どうも2、3日中に完成しそうにはありませんねぇ。 |
現在、cronが自由に使えるレンタルサーバを探しています。知っている方いませんでしょうか。プロバイダは別に入っているので、ホームページ作成用として考えています。 |
@68user > 思っていたのですが、キャッシュも checkbox で選択して > 消したい、ということですか? きちんと説明していなくてスミマセン。 そうです、キャッシュの削除の話でした。 ところで、発言の編集については実装なしですか? あと、閲覧者の側から出力文字コードの指定(km=euc|jis|sjis等)が できるようになると、携帯からも見られるようになるのでうれしいです。 > というわけで、どうも2、3日中に完成しそうにはありませんねぇ。 ゆっくりやっていただければ、と思います。 「やる気が失せた」という言葉を聞くのが一番恐いです;-) |
こんばんわ。 HTTP クライアントを作ってみようで書かれてたものを そのままをコピーしてCGIとしてvirtualave.netに設置したんです。 そこで問題が! 設置したサーバーと同じサーバーに置かれてるファイルは ちゃんとダウンロードできないんですよ。 404になってしまいます。 これは一体どういうことなんでしょうか? 考えられる事がありましたら教えて頂きたいです。 |
書き忘れです。 他のサーバーに置かれてるファイルは ちゃんとダウンロードすることが出来ます。 |
http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1131から始まる一連のトピックで、同じ問題が取り上げられています。 |
どうもありがとうございました。 おかげで出来ました。 過去ログに書いてあった、 セパレータが CR でも LF でも CR LF でも認識できるようにする ってのはどうすればいいんでしょうか? ちょっと頼りすぎですかね?(^^; |
シスログについての質問です。 よろしくお願いします。 サーバが現在UNIXサーバ2台(サーバA、サーバB)があり、 サーバAのシスログの一部をサーバBに転送するように syslog.confの設定を行なっています。 こうすると、サーバBに転送されるログのうち 日本後でメッセージが記述されたものは 文字化けを起こしてしまいます。 転送されないログに関しては日本語のメッセージも うまく読むことができるのですが、、 もともと日本のメッセージを書く事自体間違って いるのでしょうか? 解決策をしっておられる方がいましたら よろしく御願いします。 |
@has > ところで、発言の編集については実装なしですか? > あと、閲覧者の側から出力文字コードの指定(km=euc|jis|sjis等)が > できるようになると、携帯からも見られるようになるのでうれしいです。 キャッシュファイルを作るようにした時点で、「シンプル」なんて 形容詞はどこかに飛んでいってしまったので、こうなったら全部 実装しまっせ。 文字コードの指定ってのは、どういう風にするのがよいですか? 携帯から文字コードを指定するときに、どういうインタフェースに したらよいか、いまいち想像できんです。 @あつしさん > 日本後でメッセージが記述されたものは文字化けを起こしてしまいます。 UNIX と言ってもいろいろありますが、OS は何ですか? エンコーディングには EUC/JIS/SJIS などがありますが、 どれを使っていますか? 他のエンコーディングにしても ダメですか? あと、どういうふうに化けますか? > もともと日本のメッセージを書く事自体間違っているのでしょうか? どうなんでしょうねぇ。個人的には気持ち悪いので日本語は使い ませんが、いまどき 8bit スルーじゃない syslogd もどうかと思います。 # あっちの人たちも 8bit 目が立ってる iso-8859-1 (Latin-1) を # 使ったりしないのかしら。 |
おっと見逃してた。 > セパレータが CR でも LF でも CR LF でも認識できるようにする > ってのはどうすればいいんでしょうか? m/^\r\n$/ and last; # 改行のみの行ならループを抜ける で、CR (\r) LF (\n) がくるとヘッダの終了とみなしています。 なので、CR か LF のみの行でもヘッダの終了とみなすように すればよいです。 # chomp して last if $_ eq '' でもいいんですが。 |
はじめまして。 私は今、Redhat linux6.2を使用し、パスワード変更プログラムを作成しています。 expectスクリプトをCGIより起動させ、コマンドレベルでユーザーアカウントを変更しようとしているのですが、簡単すぎるパスワードだと変更することができません。端末から普通にコマンドを入力しても拒否されるpasswdコマンド。これを簡単なパスワードでも受け入れられるようにするにはどうしたらいいのでしょうか。ぜひお教えください。 |
@68user > 文字コードの指定ってのは、どういう風にするのがよいですか? > 携帯から文字コードを指定するときに、どういうインタフェースに > したらよいか、いまいち想像できんです。 携帯の場合、sjisであれば日本語として表示することができるので、 USER_AGENTなどから携帯からのアクセスかどうか判定して、 勝手にsjisにしてくれる(私の場合は表示形態も切り替えている)、 ってのも便利かと思いますが、 wwwboard.cgi?km=sjis とかって指定するのでもいいかと思います。 |
@68userさん HTTPはResponseヘッダとボディの間はCRLFで区切るって 規定されてませんでしたっけ。 #さっきnews.yahoo.co.jpのうち一つで試してみたら、 #ちゃんとCRLFで区切られてました。 ちょっとだけ気になったので。 #もちろん、内容のわかっている規定違反をしているサーバには #対応しておくべき、というのが正しい道なのはわかります。 #できれば歩きたくない道ですが(笑 @超初心者さん おそらくPAMでcracklibが有効になっていると思われるので、 これを無効化するか、パスワード変更プログラムをsuid rootすれば できるようになるでしょう。 その辺を調べてみてください。 ただ、セキュリティ的には間違いなく「改悪」なので 止めておくことをお勧めします・・・。 |
ほんとしょうもない質問ですみません。 Print Screen機能を使って画面を印刷したいんですが、 どうしたらいいのでしょうか。 教えてください。 |
-u 同一内容の行は1度しか表示しない。 % cat sample | sort abc def def ghi % cat sample | sort abc def (同じ行は一度しか表示しない) ghi 2回目に-uが入ってないのでは 初心者なので違っていたら済みません。 |
> 簡単すぎるパスワードだと変更することができません。 root なら「パスワードが簡単すぎるぞ」と怒られても、再度 同じパスワードを入力すればムリヤリ変更できますが、一般 ユーザでは hsj さんの書かれたようなことをしない限り、 無理でしょうね。 > HTTPはResponseヘッダとボディの間はCRLFで区切るって > 規定されてませんでしたっけ。 です。 http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1135 の書き方はちょっとアレなので、書き直すと、 http://news.yahoo.co.jp/headlines/top/ のヘッダ/ボディのセパレータは LF になってます。 00000000 48 54 54 50 2f 31 2e 30 20 32 30 30 20 4f 4b 0a |HTTP/1.0 200 OK.| 00000010 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 |Content-Type: te| 00000020 78 74 2f 68 74 6d 6c 0a 43 6f 6e 74 65 6e 74 2d |xt/html.Content-| 00000030 4c 65 6e 67 74 68 3a 20 31 39 31 30 33 0d 0a 0a |Length: 19103...| 00000040 3c 68 74 6d 6c 3e 0a 3c 68 65 61 64 3e 0a 3c 21 |<html>.<head>.<!| > Print Screen機能を使って画面を印刷したいんですが、 Print Screen キーを押したら、xwd コマンドを実行するように、 ウィンドウマネージャを設定するのが一番簡単そうです。 > 2回目に-uが入ってないのでは ですね。御指摘どうもです。次回更新時に修正しておきます。 |
はじめまして。 今、procmailを用いて転送制限の設定を行っているのですが 添付ファイル付きのメールを転送しない設定ができません。 ある雑誌に載っていた方法を試したのですが、どうもうまくいきません。 :0 c * !Content-Type:.*multipart !転送先メールアドレス 資料に目を通した限り、うまくいきそうな感じがするのですが 間違いなり、さらにうまい方法があるならばお教えください。 お願いします |
追記します。 下記の例は、添付ファイルがついていた場合 メール転送しないという意味で書いています |
68userさん、hsjさん。返信ありがとうございます。 やはりそうですか・・・。 さすがにセキュリティを下げると問題があるので、コマンドレベルから やることは破棄せざるをえなくなりました。 その代替となると、passwdコマンドのソースを研究するしかないのかもしれませんね。どこかにそんなことを詳しくのっている場所はないでしょうか? 現在自分自身でも検索中です。 |
@68userさん スミマセン、ぼくの確認方法が正しくなかったようです。 確実な方法で確認したところ、確かにnews.yahoo.co.jpは LFしか返してきませんね。はー > http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1135 > の書き方はちょっとアレなので、書き直すと、 > http://news.yahoo.co.jp/headlines/top/ > のヘッダ/ボディのセパレータは LF になってます。 こっちの意味は取り違えてなかったんですが(苦笑 @超初心者さん いやそうではなくて、ユーザが任意の文字列を選ぶ際に、 その文字列のパスワードとしての強度を(ある程度)判定してくれる物を 取り除いてしまうこと自体が「改悪」だと言う意味です・・・。 |
お礼が遅れてすいませんでした。 てっきり頼り過ぎたので無視されたと 思って掲示板を見てませんでした(^^; なるほど、良く分かりました。 ありがとうございました |
> 超初心者 > 超メール初心者 > 超ビギナー こういうハンドルはやめてください。そこまで匿名性を 求めるならば、www.2ch.net などを利用してください。 > 今、procmailを用いて転送制限の設定を行っているのですが > 添付ファイル付きのメールを転送しない設定ができません。 まずは ~/.procmailrc の先頭に LOGFILE=$HOME/procmail-log などと書いて、ログを取りましょう。原因究明はその後です。 > passwdコマンドのソースを研究するしかないのかもしれませんね。 まぁそうなりますが、passwd は人間様が対話的に使うコマンド なので、*BSD ならスクリプト向きの pw コマンドってのが あります。これは root での使用を前提としているので、 指定したパスワードをそのまま設定してくれます。Redhat Linux にも、その手のコマンドがあるかもしれません。 で、以下のようなスクリプト #!/usr/bin/suidperl $username=$ARGV[0]; $newpasswd=<STDIN>; chomp($newpasswd); echo $newpasswd | pw usermod -n $username -h 0 を passwd_change という名前で保存して、 # chmod 4755 passwd_change # chown root passwd_change しておけば、誰でも % echo newpasswd | passwd_change username で変更できます。 もちろんこのままでは、セキュリティもへったくれもないので 何かしらの制限を付けないといけません。 @has 文字コードの件、了解です。 |
どうも皆さん始めまして。 私は最近Cygwinでプログラミングの勉強を始めました。 Linuxのことはまだほとんどわからないので2つ同時に 勉強しなければならないので大変です(^_^;) で、インターネットで拾ってきたいろんなサンプルソースを コンパイルして遊んでるんですが、LinuxとWin32での ソースレベルでの互換性に疑問があります。 たとえば、あるサンプルソースの場合、シリアルポートにアクセス するのに #makefile SERIALDEVICE = /dev/ttyS0 #tool.c /* setup serial port */ void open_serial(char *devicename) { struct termios newtio; dfd = open(devicename, O_RDWR | O_NOCTTY); if (dcfd < 0) { perror(devicename); exit(-1); } open_serial(SERIALDEVICE); という具合にデバイスをオープンしているのですが、 このソースをWin32アプリとしてコンパイルしても当然(?)動きません。 で、SERIALDEVICEの部分を COM1 に変えて見たのですが、これも 動きませんでした。 他のファイルやソースを眺めてみても、良くわからないのですが、 この場合、Win32で動作させるにはどのようにすべきなのでしょうか? |
ども、はじめまして。雅人と言います。 質問なのですが 掲示板をつくろう(1)でperlを書くならEUCで書くべきと 書かれてたのでSJIS(CRLF)からEUC(CRLF)に変換したところ 逆に文字化けが起こってしまいました。 ローカルな環境(win95)でもアップロード先(virtualave.net) でも文字化けが起こってしまいます。 これの原因とは一体なんなのでしょうか? よろしくお願いします。 |
超メール初心者あらため宗佑です。 procmailの転送設定、自己解決しました。 記述が足りなかっただけでした。 うーん、奥が深いですね、メール転送。 これからスクリプトを徐々に複雑にしていこうと思います。 でもprocmailを記述しているHPって少ないものなんですね。 載っている例も基本的なものです。 私も自分で試している途中ですが、procmailの達人みたいな例の 載っているHPをどなたかご存知内でしょうか? お願いいたします |
@雅人さん > ローカルな環境(win95)でも メモ帳などのエディタで化ける、ということならば EUC を読めるエディタを入手して下さい。 > アップロード先(virtualave.net) でも ブラウザの文字コード設定を「日本語 EUC」として直るならば、 CGI の出力する日本語部分が短かすぎるため、ブラウザが 文字コードを正しく解釈していないのでしょう。その場合は、 print "Content-type: text/html\n\n"; を print "Content-type: text/html; charset=EUC-JP\n\n"; として下さい。 @宗佑さん > でもprocmailを記述しているHPって少ないものなんですね。 > 載っている例も基本的なものです。 確かに少ないですね。僕もあまり見かけたことがありません。 ただ、基本的なところをわかっていれば procmailrc(5) と procmailex(5) でなんとかなることも多いです。 @Madstar さん うーん、さっぱりです。シリアルポートの操作さえしたことがないので…。 |
> print "Content-type: text/html; charset=EUC-JP\n\n"; > として下さい。 というより、Content-type ヘッダには EUC-JP/Shift_JIS/ISO-2022-JP などの charset を付加 *すべき* です。 僕のところの CGI プログラムには一部にしか付いていませんが、 これは悪い CGI の見本です。必ず charset を付けましょう。 |
どうも、ありがとうございました! 無事できました。 |
みなさん、はじめまして。海苔王と申します。 現在、ソラリス7でサーバーを構築しています。 apache,sendmail,popper と動かしてきて、昨日までは メールが動いていたのですが、突如、受信ができなくな ってしまいました。電八で出たエラーは以下のとおりです。 +OK QPOP (version 3.0.2) a ******starting. C: USER *** S: +OK Password required for ****** C: PASS ******** S: -ERR [SYS/TEMP] maillock error 3: '/usr/mail/*****' といった内容でした。sendmail.def からいろいろ見直したのですが、 うごきませんでした。どうかアドバイスお願いします。 |
チェック項目を思い付くままに。 1. /var/log/messages や /var/log/maillog に詳細なエラーは出ていないか 2. /usr/mail/ のパーミッションがおかしくなったのではないか (ls -ld /usr/mail) 3. /usr/mail/ にロックファイルらしきものは残っていないか (ls -lA /usr/mail) 4. ディスクの残り容量は (df -k)。i-node space が枯渇していないか (dk -ki) 5. ソースから grep maillock して、エラー箇所を捜し出す あと重要なのが、全ユーザでメールを取得できないのか、 一人だけメールを取得できないのかってこと。全ユーザなら 1,2,4 あたり。一人だけなら 3 をチェック。 ってな感じでしょうか。 |
>うーん、さっぱりです。シリアルポートの操作さえしたことがないので…。 残念です(T_T) まぁシリアルポートなんて今更余り使わないですよねぇ(^_^;) いろいろ検索かけてるんですが、さっぱりです。 |
>まぁシリアルポートなんて今更余り使わないですよねぇ(^_^;) DOS時代には、awkで print "AT" > "AUX" みたいな感じでモデムとお話してましたが、 Windowsではどうなんだろう…試してません(^^; |
> シリアルポート ぼくの当てにならない記憶によると、 winでシリアルポートを開くときはAPIのCreateFile()を使うはずです。 その辺を調べてみてください。 で、この辺のソースはwin系と*nix系での互換性を維持するのは 難しいところだと思います。 ぼくはCygwinは使ったことありませんが、おそらくopen()を実装するのに このAPIを使ってると思うので、もしかしたら開けるかもしれません。 が、結局フラグが違うでしょうからあまり意味無いと思います・・・。 #そもそもLinuxのopen()ってシステムコールですしね |
初めまして。 Perlの勉強をし始めたばかりなのですけど、ソケットを使ったクライアントプログラムの作り方とか…全くの初心者な私にはすごく解りやすくて、それに読みやすかったです。 全部説明しよとう難しくなってるサイトや、簡単に説明しようと補足説明が抜けてるサイトも多いですけど、このサイトの説明はとても解りやすいです。 えっと感想をここに書いて良い物かどうか解りませんが、本当に参考になりました。ありがとうございます。 |