このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

掲示板のパスワード保護

発言者:籾井 宏文
( Date Friday, January 30, 1998 11:18:15 )


 こんにちは。佐賀県教育センターの籾井といいます。

 みなさんのお知恵をちょっと拝借したいですが、よろしくお願いします。

 Easy BBS PIを使った掲示板を考えているのですが、書き込みにはパスワードをか
けて、パスワードを持っているものだけ書き込めるようにする、一方、読み出しは誰
でも見ることができるようにする、というような設定は可能でしょうか。

 マシン:PowerMac7100/66
 HTTPd:WebStar 2.0
 ネットワーク:上流の大学と専用線接続

 というような環境です。他にUNIXマシンがあって、DNS/Sendmail/HTTPなどのサー
バになっています。

 WebStarの保護領域を使うと、読み出し・書き込みともID、パスワードが必要にな
るので、ちょっと困っています。もし、皆様方で何かアイデアがあれば、お願いしま
す。それとも、WebStarで上記のような環境を作ることができる設定があるのでしょ
うか。

 よろしくお願いします。



→  佐賀県教育センター

田中求之 さんからのコメント
( Friday, January 30, 1998 15:20:51 )

会議室ごとに書き込みをできる人を別々に分けたいということになると無理ですが、
すべての会議室に共通の権限として(つまり、書き込みが許されている人は、
どの会議室でも書き込める)設定するのであれば、以下の方法で可能です。

2つの保護領域を作ります。

一つは新規発言の権限を管理するもので、検索文字列を new.bbs に設定します
もう一つはコメントの権限を管理するもので、検索文字列を comment.bbs に
設定します。

こうしておけば、新規発言・コメントは保護領域(Realm)に登録された人しか
できなくなります。

まさ さんからのコメント
( Monday, February 16, 1998 20:39:05 )

こんにちは。

>会議室ごとに書き込みをできる人を別々に分けたいということになると無理ですが
これは、他に方法はありますか?

と、いうのも籾井さんと同じで、Easy BBS PIを使った掲示板で考えているのですが、
読むのは誰でも読めて、書き込みに関してだけパスワードで制限をかけたいのですが、
WebSTARの保護領域ですと、他の会議室に書き込みたいときも、パスワードが
一度入力されていれば、その会議室にも書き込みできてしまいますよね。
でも、この方法だとブックマークされててもパスワードを聞いてきますよね。
それは、捨てがたいです。


例えば、BBS1のフォルダの中に会議室1、会議室2、会議室3とあったとして
このフォルダの中の会議室に書き込む時のパスワードは一回入力すれば1、2、3、
とも書き込みできます。
そして、BBS2という別のフォルダに同じように会議室1〜3があって、ここに
書き込みをしたいときはBBS1のパスワードでは入れないようにはできないでしょ
うか?
この方法をやりたかったら、WebSTARの保護領域では無理ですよね。

まだ、あまり調べてないのですがNetCloakのパスワード制限だと、人数が増えた時
に、ファイルにずらずらと書いていくのも大変だと思ったんですが。
10人20人位ならいいんですが、何百人となると大変ですよね。

うまく説明できてないんで申し訳ないんですが、他に方法はありますか?


その話とはずれるんですが、WebSTARのパスワードの追加は、だいたい何名位
まで登録できるのでしょうか?


ご存知の方よろしくお願いします。

たまちゃん さんからのコメント
( Monday, February 16, 1998 22:38:58 )

>>この方法をやりたかったら、WebSTARの保護領域では無理ですよね。

あまりスマートな方法ではないかもしれませんが。。。

BBS1、BBS2をMatch Stringのキーワードにして、それぞれに別の名前とパスワ
ードを与える設定にして保護領域を設けます。こうすることにより、権限をも
った人しか書き込みが出来ません。

BBS1やBBS2の中にあるファイルをBBS1やBBS2という名前のつかない別のフォル
ダにそれぞれコピーし、そのフォルダを「R_」つきの名前にして、リードオン
リーの会議室にします。もちろん、もとのBBS1やBBS2を「U_」で始まる名前に
しておいても構わないと思います。

もっといい方法があるかもしれませんね。

田中求之 さんからのコメント
( Monday, February 16, 1998 23:11:20 )

基本的には、たまちゃんさんのおっしゃるように、会議室にしているフォルダーの
名前を search string にしてもらうことで、会議室単位での保護領域が設定
可能です。ただし、BBS1 などの単純な名前を使うと、BBS12 にもヒットして
しまうという問題が起きますので、できれば、会議室ごとにユニークなフォルダー
名を使うことをお勧めします。


まさ さんからのコメント
( Thursday, February 19, 1998 15:06:04 )

たまちゃんさん、田中先生、ありがとうございます。

BBS1などの名前を複雑な名前にして、保護領域を設定することにしました。
そこで、もう一つ質問なんですが、
BBS1の中に会議室を2つにして、1つは書き込み制限のある会議室(A)。
もう1つはリードオンリーの会議室(B)にして、(A)に新しい書き込みがあった
場合、両方の会議室共に、書き込まれる。ということは、可能でしょうか?
説明を読んでいるとリードオンリーの方は、管理者がファイルを入れるという事で
したが、それはできないんでしょうか?
「U_」という非公開の形はとりたくないのですが。

リードオンリーの(B)の会議室は、誰でも新しい情報を見れるというふうにしたいの
ですが、やはり、管理者が入れていく以外方法はないでしょうか?

スクリプトなどの知識が浅いもので、変な質問かもしれませんが、よろしくお願いします。

たまちゃん さんからのコメント
( Thursday, February 19, 1998 23:30:07 )

たまちゃん、東京出張中です。

BBS1の中にAという書き込み専用の会議室とBというリードオンリーの
会議室がある場合、保護領域は

/BBS1/A

という文字列に対してのみ設定する必要があります。BBS1だけに設定
をすると、リードオンリーの会議室に対してもIDとパスワードの入
力が必要になってきますので。U_で といったのは、上でいう/BBS1/A
の部分に対して設定するという意味です(ロボット君の問題を除けば、
この部分に保護領域を設定する必要はないかもしれません。したがっ
てそもそも保護領域はいらなくなるかもしれません)。

要は、/BBS1/Aに書き込まれた内容(ファイル)を/BBS1/Bにコピーし、
リードオンリーにするということだと思います。両会議室に同時に書
きこむ方法については残念ながら思いつきません。すみませんです。

コピーの方法については、自動化したいのであればスクリプトを書く
必要があると思いますが、過去ログに(確かログ関連の処理だったは
ずですが)田中さんが書かれたものが載っているはずですので、お探
しください。

そんなややこしいことはいやだ、と思ったり、書き込みの頻度の高く
ない、即時性の必要性のあまりない会議室でしたら、手でコピーする
のが一番手っ取り早いと思います。

#出張中で書き込めないのですが、たまたまホテルの専用線が無料で
つながっているようなので、書き込んでいます。(^_^) 後で請求がき
たらどうしよう。。。

たまちゃん さんからのコメント
( Thursday, February 19, 1998 23:30:30 )

たまちゃん、東京出張中です。

BBS1の中にAという書き込み専用の会議室とBというリードオンリーの
会議室がある場合、保護領域は

/BBS1/A

という文字列に対してのみ設定する必要があります。BBS1だけに設定
をすると、リードオンリーの会議室に対してもIDとパスワードの入
力が必要になってきますので。U_で といったのは、上でいう/BBS1/A
の部分に対して設定するという意味です(ロボット君の問題を除けば、
この部分に保護領域を設定する必要はないかもしれません。したがっ
てそもそも保護領域はいらなくなるかもしれません)。

要は、/BBS1/Aに書き込まれた内容(ファイル)を/BBS1/Bにコピーし、
リードオンリーにするということだと思います。両会議室に同時に書
きこむ方法については残念ながら思いつきません。すみませんです。

コピーの方法については、自動化したいのであればスクリプトを書く
必要があると思いますが、過去ログに(確かログ関連の処理だったは
ずですが)田中さんが書かれたものが載っているはずですので、お探
しください。

そんなややこしいことはいやだ、と思ったり、書き込みの頻度の高く
ない、即時性の必要性のあまりない会議室でしたら、手でコピーする
のが一番手っ取り早いと思います。

#出張中で書き込めないのですが、たまたまホテルの専用線が無料で
つながっているようなので、書き込んでいます。(^_^) 後で請求がき
たらどうしよう。。。

まさ さんからのコメント
( Saturday, February 21, 1998 12:16:39 )

たまちゃんさん、やばそうな状況の中コメントありがとうございます。

>要は、/BBS1/Aに書き込まれた内容(ファイル)を/BBS1/Bにコピーし、
>リードオンリーにするということだと思います。両会議室に同時に書
>きこむ方法については残念ながら思いつきません。すみませんです。
とんでもないです。
こちらこそ、簡潔に説明できてなくて申し訳ありませんでした。
この説明の通りです。
パスワード制限の /BBS1/A に書き込みがあったら、その内容を
/BBS1/A、/BBS1/B 共にファイルに書き込まれて、パスワードを知らない
人達は書き込みのできない /BBS1/B を閲覧するだけということです。

>コピーの方法については、自動化したいのであればスクリプトを書く
>必要があると思いますが、過去ログに(確かログ関連の処理だったは
>ずですが)田中さんが書かれたものが載っているはずですので、お探
>しください。
すいません。
結構探してみたのですが、わからなかったのでどんな単語で検索かければ
いいのか覚えていたら教えて頂けますか?
自分で探しますので。もちろん今も探しに行ってきます。
ややこしくても、自分の出来る所までやってみたいので、よろしくお願い
します。

たまちゃん さんからのコメント
( Saturday, February 21, 1998 13:25:32 )

まささんへ:

拙い説明で混乱されたかもしれませんね。

>>パスワード制限の /BBS1/A に書き込みがあったら、その内容を
>>/BBS1/A、/BBS1/B 共にファイルに書き込まれて、パスワードを知らない
>>人達は書き込みのできない /BBS1/B を閲覧するだけということです。

了解しました。くれぐれも「/BBS/A」という文字列を保護領域設定の際の文字列
にするようにご注意下さい。

お探しの過去ログは↓だと思います。

>>やばそうな状況の中コメントありがとうございます。

私は昨日、帰神し、六甲山麓に今現在います。Expoに行きたかったのですが、
日程の都合で行けませんでした。またの機会を伺うことにします。

P.S.1昨日のポストが二重になりました。お詫びいたします。Win版のIE3.0
    で「File I/O Eroor」なるものが出て、もう1度送信ボタンを押したら
  2回送ったことになってしまいました。2回目もエラーが出ました。過
  去には1度もこのようなエラーが出たことはないのですが、同じIEでも
  色々なビルドナンバーのものがあるようなので、悪いものに当たってし
  まったのかなと思いました。つい最近のくばさんの記事を思い出したも
  ので。


→  EIMSのログを自分のマシンで

たまちゃん さんからのコメント
( Saturday, February 21, 1998 13:28:44 )

>>くれぐれも「/BBS/A」

すみません。「/BBS1/A」の間違いです。(^_^;;) ちなみにホテルからの
請求はなく、得をしました。(^_^)

田中求之 さんからのコメント
( Sunday, February 22, 1998 20:14:42 )

>BBS1の中に会議室を2つにして、1つは書き込み制限のある会議室(A)。
>もう1つはリードオンリーの会議室(B)にして、(A)に新しい書き込みがあった
>場合、両方の会議室共に、書き込まれる。ということは、可能でしょうか?

たまちゃんさんのおっしゃるように、基本的にはファイルを自動的にコピーする
仕組みを自分で作るしかありませんね。


まさ さんからのコメント
( Wednesday, February 25, 1998 20:34:22 )

たまちゃんさん、田中先生、ありがとうございます。
コメントが遅れて申し訳ありません。

やはり、自分で作るしかありませんね。
一番、分かりやすい方法は、AppleScript の Send Partial という方法
でしょうか?

AppleScript は、自分で書いた事がないのですごく不安です。
というか、どのようにするのかもよくわかっていないのが現状です。
でも、これが一番意図にあってるので、勉強します。

田中求之 さんからのコメント
( Wednesday, February 25, 1998 23:22:42 )

>一番、分かりやすい方法は、AppleScript の Send Partial という方法
>でしょうか?

Send Partial は、ここでは関係ないですよ。CGI 側から分割したデータを
サーバーに送り返すのに使うのものですから。

非常に単純な方法として、CGI の中に交信・作成を行ったページを登録しておく
property を設けておき、ページ更新の際にはそれにファイル名を登録する、
そして idle ハンドラーによって、登録されたページの閲覧用へのコピーを
行う、というスクリプトを組むことでしょう。