@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 文字コードの件、了解です。 |