松阪大学の 学内連絡 (ここは学内からしか見えません) のようなものを作る方法です。 パスワード確認のため /etc/shadow ファイルを参照しなければならず, スーパーユーザでしか作ることができません(setuid root します)。
ソース msgboard.cc をコンパイルします:
% g++ -Wall -O msgboard.cc -o msgboard.cgi % su # chown root msgboard.cgi # chmod 4755 msgboard.cgi
メッセージの入るファイル index.html はあらかじめ次のように作っておきます:
<meta name="robots" content="noindex,nofollow"> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <meta http-equiv="Pragma" content="no-cache"> <title>学内連絡</title> <h1>学内連絡</h1> <p><a href="post.html">[書き込み/消去]</a> <hr>
この index.html とそれが入っているディレクトリは Web サーバプロセスに書き込み権を与えておきます (たとえば www というユーザ権限で Apache を動かしているなら index.html とディレクトリは www の持ち物にしておきます)。
また,post.html はたとえば次のように作っておきます:
<meta name="robots" content="noindex,nofollow"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>書き込み/消去</title> <h1>書き込み/消去</h1> <p> <form action="msgboard.cgi" method="post"> <p>ユーザ名(ID): <input type="text" name="user" size=10> <p>パスワード: <input type="password" name="pass" size=10> <p>消去メッセージ番号: <input type="text" name="delnum" size=10> <p>メッセージ: <input type="text" name="message" size=80> <p> <input type="submit" value="送る"> <input type="reset" value="やりなおし"> </form>
リンクはご自由にどうぞ。
松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp
Last modified: Thu Dec 16 22:13:27 1999