fml の設定はほとんど makefml コマンドでできます.makefml コマンドをオプションなしで実行したらヘルプが表示されます.ほとんどこれを見ただけで実作業ができると思います.
************************************************************
makefml Usage:
makefml command
makefml command <ML> options
makefml <ML>::command options
makefml command arguments what
---------------------------------------------------------
makefml info show this message
makefml install Install the fml system
makefml newml ML make a new Mailing List <ML>
makefml destructml ML destruct Mailing List <ML>
makefml add ML addr add <addr> to <ML>
makefml bye ML addr remove <addr> from <ML>
makefml add2actives ML addr add <addr> to only actives
makefml add2members ML addr add <addr> to only members
makefml on ML addr on <addr>
makefml off ML addr off <addr>
makefml chaddr ML old new change address <old> => <new>
makefml digest ML addr [opt] set up digest(matome) for address <addr>
makefml matome ML addr [opt] set up digest(matome) for address <addr>
makefml byeadmin ML addr remove the administrator of <ML>
makefml addadmin ML addr add <addr> as an admin to <ML>
makefml passwd ML addr to change the administrator passwd
makefml help help message
makefml test ML test
makefml pgp ML args e.g. admin-auth.pgp2 ML -ka pubkey
makefml dist-auth.pgp ML args (abbr. da.pgp) pgp = pgp2 pgp[5kesv] gpg
makefml dist-encrypt.pgp ML args (abbr. de.pgp) pgp = pgp2 pgp[5kesv] gpg
makefml admin-auth.pgp ML args (abbr. aa.pgp) pgp = pgp2 pgp[5kesv] gpg
makefml admin-encrypt.pgp ML args (abbr. ae.pgp) pgp = pgp2 pgp[5kesv] gppg
makefml mead set up mead (error mail analyzer)
makefml fmlserv set up fmlserv (listserv-like server)
makefml lock ML [time] lock <ML> for <time> (default 3600) sec.
makefml edit-template edit template file under locked state
makefml config-template configure template cf file
makefml create-doc-template ML create document templates e.g. help, guide
makefml update-config ML make config.ph (cf -> config_ph)
makefml recollect-aliases remake $ML_DIR/etc/aliases
makefml htpasswd ML htpasswd wrapper for ml
makefml mladmin.cgi ML set up ml-admin/$ml/*.cgi
makefml tail ML [opt] syntax sugar of log
makefml log ML [opt] show log: [-i] [-NUMBER] [all] [-pPATTERN]
makefml command ML addr ... e.g. "command ML <addr> mget last:3 mp"
makefml edit ML edit <ML>'s file under lock (default config.ph)
makefml config ML [menu] to configure <ML> fundamental
makefml showconf show environment, version, ..
************************************************************
HOW TO INSTALL:
"perl makefml install" to install fml
"perl makefml -W cgi install" to enable cgi for fml
"perl makefml config <ML>" to go to the menu screen
makefml を実行するときのユーザ権限に注意してください。root でやろうとすると警告が出ます。必ずユーザ権限 fml で作業してください。
(hoge)% su (root)# su fml (fml)% makefml .....
メーリングリスト(以下 ML)を新規作成するには、newml オプションを使います。
% makefml newml (新しいML名)
最後に、以下のようなメッセージが出ると思います。 makefml は aliases ファイルまでは手を加えないので、自分で aliases ファイルを更新する必要があります。メッセージを見習って更新してください。
The next step: update your MTA configuration. For example
% su root
# cat $ML_DIR/$ml/aliases >> /etc/aliases
# newaliases
FYI: See templates in '$ML_DIR/$ml/'
メンバーの追加は add オプション、削除は bye オプションを使います。
% makefml add ML addr % makefml bye ML addr
ML に関する細かい設定は config オプションを使います.
% makefml config ML
例えば、ML に投稿できるメンバーを設定したい場合は、「1. POLICY OF ACCESS (WHO CAN POST AND USE COMMANDS)」の「1. PERMIT_POST_FROM」を変更することで可能です。 members_only なら、メンバーのみ、anyone なら誰でも投稿可能ということになります。
メールの番号付けの設定をしたい場合は、「5. HEADER CONFIGURATIONS」の「1. SUBJECT_TAG_TYPE」や「2. SUBJECT_TAG_FIGURE」を設定します。
他にもいろいろできますが、ここでは紹介しきれないのでこの辺にしておきます。 いろいろメニューをたどってみてください。
makefml コマンドは大変便利ですが、小回りがききません。 設定ファイルを直接書き換える方法について説明します。
各 ML の設定ファイルは、通常は /va/spool/ml/ML の下に置かれます(ただし、ML は ML 名)。 このディレクトリにあるファイルをいろいろと修正するわけです。
ML のディレクトリには actives と members のファイルがあります。
まず actives ファイルについて説明します。ML に送られてきたメールは actives に書き込まれたアドレスに転送されます。よって、あるアドレスを ML に追加したい場合、actives ファイルにそのアドレスを追加すればよいわけです。
次に members ファイルですが、これは先ほど述べた PERMIT_POST_FROM を members_only にして送信者制限を行っている場合、 members ファイルに登録されていないアドレスから ML に送信した場合、拒否されます。 つまり、送信者制限を行っている場合は、ML にアドレスを追加するのは actives だけでは不十分で、members ファイルにもそのアドレスを追加しなければなりません。 (送信だけできればよくて受信はしたくないという特殊な場合は members だけに追加すればよいわけですが、、、)
makefml コマンドで「add ML addr」を実行した場合は、actives と members の両方のファイルにアドレスが追加されます。 makefml コマンドには add2actives と add2members のオプションがありますが、それぞれ actives のみ、members のみにアドレスを追加するという意味になります。
ML の 環境設定などは config.ph ファイルによって行われます。 もうひとつの cf ファイルは makefml コマンドが一時的に利用するファイルです。「makefml config」を実行すると,cf ファイルが書き換えられて、 その cf ファイルの内容にしたがって config.ph が書き換えられることになります。
makefml コマンドを全く使わないという人は config.ph を直接編集してかまいません。ただし,config.ph を修正後に makefml コマンドを実行すると、その修正内容は cf の設定で上書きされてしまうので、注意が必要です。
makefml コマンドを使い続けたいという人は、cf ファイルの方を修正します(こちらの方がおすすめです)。 ただし、cf ファイルだけを修正しても、config.ph の方に反映されません。 config.ph に cf の内容を反映したい場合は「make config.ph」を実行します。
% vi cf % make config.ph
cf ファイル中に FQDN (ドメイン名込みの完全なマシン名)と DOMAINNAME の2つの設定項目があります。 ML で送られてくるアドレス(To:)の @ 以降を FQDN ではない文字列に設定したいときは、DOMAINNAME を変更すればよいでしょう。 cf ファイル修正後は「make config.ph」を忘れないようにしましょう。
メンバーを追加したり削除したりする機会が増えてくると、「いちいちメールサーバにログインして設定を行うのがめんどくさい。メールを送るだけで設定をしたい!でもユーザ任せにするのはいやだ!」という欲求が出てくると思います。そういうときは遠隔管理機能を使います。
遠隔管理機能を有効にするには、「makefml config ML」を実行して、 「4. REMOTE ADMINISTRATION」の「1. REMOTE ADMINISTRATION」を yes に設定します。 「2. REMOTE_ADMINISTRATION_AUTH_TYPE」は crypt でかまいません。
次に、管理者のアドレスを登録します。もちろん、管理者は複数人登録可能です。
% makefml addadmin ML addr
次に、パスワードの設定です。パスワードはアドレスごとに設定可能です。
% makefml passwd ML addr
これで一通り設定は完了です。
遠隔管理用のメールアドレスは、ML のアドレスの後ろに「-ctl」を付けたものになります。例えば、「hoge@somedomain.com」という ML があったとすれば、管理用のアドレスは「hoge-ctl@somedomain.com」になります。管理用のアドレスにいろいろと命令を送信することで各種設定が可能となります。
管理用のアドレスに送信する場合、メールヘッダの「From:」はあらかじめ「makefml addadmin」によって登録したアドレスでなければなりません。
また、遠隔管理の際はパスワード認証が必要です。そのために、メール本文の一行目は「admin pass (パスワード)」のようにパスワードを設定する必要があります。 ただし、ここでのパスワードは、あらかじめ「makefml passwd」で設定しておいたパスワードです。
ここまで踏まえた上で、実際の例を見ることにしましょう。 管理したい ML アドレスが hoge@somedomain.com 、 管理者のアドレスが foo@otherdomain.com 、 パスワードが「hanabi」だったとします。 その場合、遠隔管理コマンドのヘルプを見たい場合には以下のようなメールを送信します。
From: foo@otherdomain.com To: hoge@somedomain.com Subject: admin pass hanabi admin help
うまくいけば、パスワード認証が成功したという内容のメールと、遠隔管理コマンドのヘルプが返信されてくるはずです。 なお、上の例では Subject が空ですが、何を入力してもかまいません(無視されます)。
遠隔管理で ML に アドレスを追加したい場合は、「admin add address」、 削除したい場合は「admin bye address」を使います(ただし address の部分には追加あるいは削除したいアドレスを入れる)。 例えば、kkk@hoge.com を追加し、sss@foo.com を削除したい場合は以下のようにします。
From: foo@otherdomain.com To: hoge@somedomain.com Subject: admin pass hanabi admin add kkk@hoge.com admin bye sss@foo.com
もちろん,複数アドレスを同時に登録・削除することも可能です。
ML のメンバーを知りたい場合は、「admin get filename」コマンドを利用します。 このコマンドはもともと、 ML のディレクトリにあるファイルの内容を取得したいときに使うコマンドです。 例えば、actives に登録されているアドレスを取得したい場合は「admin get actives」を、 members に登録されているアドレスを取得したい場合は,「admin get members」を使います。
あまり機会がないかもしれませんが、管理者の追加や削除も可能です。 例えば、bar@otherdomain.com を管理者として追加し、パスワードを「manifest」 に設定したい場合は,以下のようにします。
From: foo@otherdomain.com To: hoge@somedomain.com Subject: admin pass hanabi admin addadmin bar@otherdomain.com admin initpass bar@otherdomain.com manifest
addadmin が管理者追加命令で、initpass がパスワード変更命令となります。
遠隔管理コマンドは他にもいろいろあります。リストを載せておきます。
admin pass パスワード admin password パスワード admin passwd 新しいパスワード admin initpass アドレス パスワード admin help admin log admin add address admin off address admin on address admin bye address admin chaddr old-addr new-addr admin change old-addr new-addr admin change-address old-addr new-addr admin matome address 引数 admin skip address admin addadmin address admin addpriv address admin byeadmin address admin byepriv address admin dir admin ls options admin remove filename admin get filename admin resend filename address admin put filename admin rename filename1 filename2 admin newinfo admin newguide admin unlink-article ID admin remove-article ID admin pgp options
「admin help」を実行して帰ってくるメールの内容を示しておきます.
管理者コマンドのヘルプ ________________________________ ------------------------------------------------------------ 1 Overview 1.1 コマンドについて 2 コマンドリスト 2.1 パスワード関係 2.2 ヘルプ 2.3 ログファイル 2.4 メンバーリストの変更 2.5 管理者メンバーリストの変更 2.6 ファイル操作 2.7 PGP (Pretty Good Privacy) 2.8 特殊なもの ------------------------------------------------------------ ________________________________ 1 Overview 歴史的に # をコマンドの前につけても構いませんが;-)、デフォールト設定で は必要ありません。e.g. #unsubscribe, #help 1.1 コマンドについて "admin コマンド" == "approve パスワード コマンド" と同じです。パスワードは平文で書いてください。 approve 形式は各行にパスワードを書く必要がありますが、 admin 形式の方では最初にだけパスワードの認証が必要なだけです。 なおPGPモードでパスワードを書く必要はありません。よってPGPの場合 admin pass 行は必要ないし、approve コマンドは無意味です(無意味にパスワード打 ち間違えによるエラーで混乱する可能性もあります)。 コマンドの例: admin pass パスワード は次の行と同じです。 approve パスワード ls 2 コマンドリスト 2.1 パスワード関係 admin pass パスワード admin password パスワード もしパスワードを必要とする設定なら必ず先頭にこれがないといけま せん。キーワードはpasswdにしようかと思ったけど、 そうすると、コマンドラインとごっちゃになるからftpからとって きてpassというキーワードを使います。 admin passwd 新しいパスワード パスワードの変更 shell% passwd ってやつとおなじっす(複数回は要求されませんが)。 admin initpass アドレス パスワード アドレスに対するパスワードを"パスワード"で初期化する 初期化は変更と違い特別扱いです。bin/passwd -i とおなじです。 2.2 ヘルプ admin help 管理者コマンドヘルプを取り寄せる(このファイル) 2.3 ログファイル admin log ログの最近の100行を取り寄せる admin log -N ログの最近の N行を取り寄せる。例 admin log -40 (最近の40行) admin log all ログファイル全体を取り寄せる。とても大きいかも知れないので注意。 2.4 メンバーリストの変更 admin add address address の人をMLに登録する admin off address address の人をML一時おやすみにする (actives file にのみ作用する) admin on address address の人のML一時おやすみを解除 (actives file にのみ作用する) admin bye address address の人をMLメンバーから削除 admin chaddr old-addr new-addr admin change old-addr new-addr admin change-address old-addr new-addr old-addrを削除して、new-addrを登録する admin matome address 引数 address の人を まとめおくりに 引数は 6 6u 6i 等 admin skip address この address を配送はしないけど投稿はできるようにする 2.5 管理者メンバーリストの変更 admin addadmin address admin addpriv address address の人を管理者メンバーとして登録 admin byeadmin address admin byepriv address address の人を管理者メンバーから削除 2.6 ファイル操作 admin dir MLのある場所の階層全部のリスト(ls -lR) 注意: $DIR 下全部なのででっかいかもしれない admin ls options MLのある場所のリスト(ls) admin ls -l admin ls -l spool のようにオプション(一行に書く限りいくつあってもいい)も使える admin get filename MLのある場所の filename というファイルをとってくる admin resend filename address MLのある場所の filename というファイルを address へ送る。 admin forward admin forward 行より後ろをMLへフォワードする 本来モデレータモードで使うためのもの でもこのコマンドをTYPOして…という危険はありうるので注意 admin newinfo admin newguide この命令に続くメール本文の残り部分を新しい GUIDE ファイルとして 入れ換える *** 注意 *** [#l5cf9e0d] ファイルを削除、上書きをするコマンドは security 上の問題があります。上 書きするファイルは @REMOTE_RECONFIGURABLE_FILES という配列に入っている ファイル群です。必要ならこの配列に付け加えてください。 admin put filename MLのある場所の filename というファイルを置く。 もし filename というファイルがある場合は、 古い filename は filename.bak に変えておく admin remove filename MLのある場所の filename というファイルを削除 admin rename filename1 filename2 MLのある場所の filename1 というファイルを filename2 という名 前にする。 ただし rename は filename1 filename2 とも @REMOTE_RECONFIGURABLE_FILES のファイルでないといけないため使い道はあまりないだろう。 admin unlink-article ID admin remove-article ID 記事番号 ID の記事を削除して、ファイルの中身は "removed by an administrator" というフレーズに置き換えられる。html 形式のファ イルも作ることになっていればそれも置き換える。なおexpireを考慮 して時刻は置き換えるファイルのものと同じに設定し直している。 注意: 間違った記事を消しても取消はできない。 2.7 PGP (Pretty Good Privacy) admin pgp -ka メールのこの行以降の部分を pubric key としてMLサーバの pub-ring に加える admin pgp -kv 現在の key-ring を見る *せっかくPGP使うんだから、リモート管理の認証モードはPGPが望ましいでしょ *うね 2.8 特殊なもの admin はつかないけど… set debug デバッグモードをオン set addr_check_max LEVEL アドレスのチェックを LEVEL(数字)へ。つまり $ADDR_CHECK_MAX = LEVEL へ set exact アドレスのチェックをExact へ 実は $ADDR_CHECK_MAX = 9; です:-) AUTHOR: Ken'ichi Fukamachi