Majordomo上のML管理者のための解説書
はじめに
この文書は Majordomo-1.94 付属のlist-owner-infoを参考にして作成しております.
また、説明に当たり以下のことを仮定します。
| 管理しているML名: |
ML-NAME |
| MLの動いているコンピュータ: |
fuchu.or.jp |
コマンドの送り方
majordomo@fuchu.or.jpあるいは
ML-NAME-request@fuchu.or.jp宛に送って下さい。
この2つの違いは、majordomo
がすべてのメーリングリストに対するコマンドを処理するのに対して、
ML-NAME-requestはML-NAMEを対象としたコマンドしか扱いません。
以下のコマンドリストで<list>となっている部分はML-NAME-requestに送る場合は削除して下さい。
| 例. |
|
To: majordomo@fuchu.or.jp subscribe ML-NAME
address@domain.net |
| と |
|
To: ML-NAME-request@fuchu.or.jp subscribe
address@domain.net |
| は同じものです。 |
すべての人に公開されているコマンド一覧
- subscribe <list> [address]
- <address>をメンバに追加する。管理者の確認が必要な設定の場合は、このメッセージが送られたことがML-NAME-approval宛に通知されるだけで、リストそのものは変化しない。
- unsubscribe <list> [address]
- <address>をメンバから削除する。管理者の確認が必要な設定の場合は、このメッセージが送られたことがML-NAME-approval宛に通知されるだけで、リストそのものは変化しない。
- which [address]
- <address>(省略した時は発信者)が属しているMLの一覧を取り寄せる。
- who <list>
- MLのメンバ一覧を取り寄せる。設定により、非公開あるいはメンバのみに公開とすることもできる。
- info <list>
- 非メンバ向けの案内書を取り寄せる。
- intro <list>
- メンバ向けの案内書を取り寄せる。
- index <list>
- アーカイブされているメッセージの一覧を取り寄せる。
- get <list>
- アーカイブからメッセージを取り寄せる。
- help
- 公開コマンドの一覧と説明(英文)を取り寄せる。
- end
- これ以降の行にコマンドがないことを示す(署名を誤ってコマンドとして認識しないようにするため)
管理者専用コマンド一覧
以下のコマンドは管理者のみが利用できるものです。発信者が管理者かどうかはパスワードのみで判定していますので、パスワードが洩れないように注意して下さい。
- approve <password> subscribe <list> <address>
- <address>
をリストに(実際に)追加する。このコマンドは、管理者に対するsubscribe要求の有無に関わらずいつでも実行可能である。
- approve <password> unsubscribe <list> <address>
- <address>
をリストから(実際に)削除する。このコマンドは、管理者に対するsubscribe要求の有無に関わらずいつでも実行可能である。
- approve <password> who <list>
- MLメンバのリストを取り寄せる。メンバ一覧が非公開になっている時はこのようにパスワードをつける必要がある。
- passwd <list> <old-password> <new-password>
- MLの管理用パスワードを<old-password>から<new-password>に変更する。
- newinfo <list> <password>
- MLの非メンバ向けの案内書を登録する。このコマンドの次の行から"EOF"という語が現れるまでが本文とみなされる。"EOF"がない場合はメールの末尾までが本文とみなされる。
- newintro <list> <password>
- MLのメンバ向けの案内書を登録する。このコマンドの次の行から"EOF"という語が現れるまでが本文とみなされる。"EOF"がない場合はメールの末尾までが本文とみなされる。
- config <list> <password>
- MLの設定ファイルを取り寄せる。
- newconfig <list> <password>
- 新しい設定ファイルに基づいて設定を更新する。設定ファイルはconfigコマンドで取り寄せた全文が必要で、一部分のみの変更はサポートされていない。設定ファイルに誤りがあった場合には設定は更新されず、エラーのあった部分がエラーメッセージとともに送り返されてくる。戻ってくるのは誤った行だけなので、変更した設定は手元に保存しておいた方が良い。
- writeconfig <list> <password>
- 設定ファイルをデフォルトのもので置き換える。不用意にこのコマンドを実行すると痛い目に遭う。このコマンドはMajordomoのバージョンが上がって新規キーワードが設定ファイルに加わった時に有効であるが、元の設定ファイルを
configコマンドで取り寄せるのを忘れないこと。
- mkdigest <digest list> <password>
- 規定の容量に達していないダイジェストを強制的に送り出す。
- mkdigest <digest list> <digest-outgoing-alias>
<password>
- ダイジェストの送り先を<digest-outgoing-alias>に設定する。これを行なうことでダイジェストの送り先を変更できる。
これを行なうためには、同期して/etc/mail/aliasファイルも変更する必要があるので一般ユーザは使うことができない。このコマンドの存在意義はセキュリティを高めることにあるらしいが、筆者にはその理由が分からない。
設定ファイルについて
1. 設定を変更するには?
- ML-NAME-requst(ダイジェストの場合はML-NAME-digest-request)に
config <password>
コマンドを送って、現在の設定を取り寄せる。
- コメントに従って書き換える
- ML-NAME-requst(ダイジェストの場合はML-NAME-digest-request)に
newconfig <password>
設定ファイル(全文)
EOF
とコマンドを送って、新しい設定ファイルをもとに状態が更新される。
※注意
- 設定に誤りがある場合は、誤りのある場所が指摘され、設定は更新されない。
- 設定ファイルは必ず全文を送る。一部分のみの変更はできない。
2.
主要な設定ファイルの項目
設定項目のうち、良く使われそうなものについて説明します。ここで取り上げなかったコマンドは設定ファイルに入っているコメントを参照して下さい。
ヘッダ/メールの書き換えに関するもの
- subject_prefix = <string>
- Subjectフィールドの先頭につける文字列を指定する。変数として以下の文字列が使用可能である。
|
$LIST |
MLの名前 |
| $SEQNUM |
連番(連番機能を使う場合のみ) |
| $VERSION |
Majordomoのバージョン |
| $SENDER |
メールの送り主(From:ヘッダ)
|
※連番機能を有効にしても、ここを設定しないとSubjectに番号が付かない。
- message_headers
- 追加したいヘッダを記入する。subject_prefixと同様の変数が使用可能。
- message_fronter
- 本文の頭に自動的に追加される文字列を指定できる。subject_prefixと同様の変数が使用可能。
- message_footer
- 本文の末尾に自動的に追加される文字列を指定できる。subject_prefixと同様の変数が使用可能。
- precedence
- メールの優先度を指定する。ここに指定した文字列がPrecedenceヘッダとして追加される。何も指定しなければ優先度を示すヘッダはつかない。
○投稿の制限
- restrict_post = <filename:filename:...>
- ここに、アドレスが書かれたファイルを指定すると、このファイル中に無いアドレスからの投稿が拒絶される。ここで複数のファイルを指定しても、メンバーファイル以外をメールコマンドによって書き換える方法はない。
- max_length = <size(byte)>
- メールの大きさの最大値(byte)を指定する。これよりも大きなメールは投稿者に返される。
- taboo_body, taboo_headers
- 禁句を正規表現で記述しておくと、本文/ヘッダにそれらの文字が現れた場合に投稿を拒絶することができる。ただ、perlが日本語に対応していないとここで日本語が使えない。
- moderate = {yes|no}
- moderator = <address>
- MLをmoderatedとするかどうかを指定する。noの場合は、投稿されたメッセージはそのままMLメンバ全員に流れる。yesの場合はApprovedヘッダにパスワードの指定がないものはmoderatorで指定されたアドレス(指定がない場合はowner)に転送される。この場合はmoderatorが内容をチェックした上でApprovedヘッダを付加して送り返して始めて全員にメッセージが流れることになる。
コマンドの実行
-
| get_access |
getコマンド |
| index_access |
indexコマンド |
| info_access |
infoコマンド |
| intro_access |
introコマンド |
| who_access |
whoコマンド |
- 各コマンドが利用可能であるかどうかを設定する。
| open |
誰でも実行可能 |
| list |
メンバのみ実行可能 |
| closed |
誰も実行できない |
-
| subscribe_policy |
subscribeコマンド |
| unsubscribe_policy |
unsubscribeコマンド |
- 登録・削除の方法を設定する。
| open |
誰でもコマンドを実行できるが、管理者の確認なくリストに登録・削除できるのは自分自身のアドレスに限られる。 |
| auto |
誰でもコマンドを実行でき、自動的にメンバリストに変更が加えられる。approvalにも通知は届く。 |
| closed |
誰でもコマンドを実行できるが、実際にメンバリストを操作できるのはapproval
passwordを知っている人に限られる。 |
- noadvertise
- ここに正規表現でアドレスを記述しておくと、該当するアドレスからのリスト一覧要求に対してMLの名前を出力しない。
正規表現
設定ファイル中では正規表現の扱いはPerlの正規表現に従います。
○大原則
- 正規表現は'/'で始めと終りを囲む。
- 後ろの'/'のさらに後ろに指定子をつけることができる。
○正規表現中で使えるパターン
| \@ |
@自身(Perlでは@は配列を表すので、\を付けなくてはならない) |
| . |
任意の1文字 |
| * |
直前の文字の0回以上の繰り返し |
| .* |
長さ0以上の任意の文字列 |
| + |
直前の文字の1回以上の繰り返し |
| \ |
次の文字列を特殊文字として扱わない |
| \. |
ピリオド(ドメイン名を指定する場合は注意) |
| ^ |
文頭を表す |
| $ |
文末を表す |
○指定子
○正規表現の例
| 例.1 |
| /cs\.umb\.edu/ |
| 一致するもの: |
rouilj@cs.umb.edu rouilj@terminus.cs.umb.edu arouilj@terminus.cs.umb.edu@greatcircle.com
|
| 例.2 |
| /rouilj\@.*cs\.umb\.edu/ |
| 一致するもの: |
rouilj@cs.umb.edu rouilj@terminus.cs.umb.edu arouilj@terminus.cs.umb.edu@greatcircle.com
|
rouilj@umb.edu brent@cs.umb.edu |
:一致しないもの |
| 例.3 |
| /^rouilj\@.*cs\.umb\.edu$/ |
| 一致するもの: |
rouilj@cs.umb.edu rouilj@terminus.cs.umb.edu
|
| arouilj@terminus.cs.umb.edu@greatcircle.com |
:一致しないもの |
| 例.5 |
| /.\*rouilj/ |
| 一致するもの: |
a*rouilj s*rouilj
|
| *rouilj |
:一致しないもの('.'に相当する文字がない) |
| 例.6 |
| /aol\.com/i(大文字・小文字の区別をしない) |
| 一致するもの: |
aol.com AOL.com AoL.cOm
|