summaryrefslogtreecommitdiff
path: root/fml/doc/ja/tutorial
diff options
context:
space:
mode:
authorfukachan <fukachan>2002-07-28 06:26:55 +0000
committerfukachan <fukachan>2002-07-28 06:26:55 +0000
commita258175aff5d5beb65a28dc29776cf16d4c2ad70 (patch)
treeda32b4802b060e0ce17eeef727064dbdada5dc68 /fml/doc/ja/tutorial
parent2b86a4d2e749f8e31a12d0e57a02ddd80338ff95 (diff)
downloadfml8-a258175aff5d5beb65a28dc29776cf16d4c2ad70.tar.gz
fml8-a258175aff5d5beb65a28dc29776cf16d4c2ad70.tar.bz2
fml8-a258175aff5d5beb65a28dc29776cf16d4c2ad70.zip
improve usage around makefml
Diffstat (limited to 'fml/doc/ja/tutorial')
-rw-r--r--fml/doc/ja/tutorial/book.sgml9
-rw-r--r--fml/doc/ja/tutorial/customize/chapter.header.sgml15
-rw-r--r--fml/doc/ja/tutorial/customize/chapter.ml_style.sgml (renamed from fml/doc/ja/tutorial/customize/chapter.sgml)2
-rw-r--r--fml/doc/ja/tutorial/include/chapters.ent27
-rw-r--r--fml/doc/ja/tutorial/module/IO::Adapter.sgml212
-rw-r--r--fml/doc/ja/tutorial/usage/command.sgml12
-rw-r--r--fml/doc/ja/tutorial/usage/customize.sgml13
-rw-r--r--fml/doc/ja/tutorial/usage/fmlconf.sgml4
-rw-r--r--fml/doc/ja/tutorial/usage/fmldoc.sgml4
-rw-r--r--fml/doc/ja/tutorial/usage/fmlhtmlify.sgml4
-rw-r--r--fml/doc/ja/tutorial/usage/fmlthread.sgml4
-rw-r--r--fml/doc/ja/tutorial/usage/makefml.sgml310
-rw-r--r--fml/doc/ja/tutorial/usage/onhost.sgml22
13 files changed, 477 insertions, 161 deletions
diff --git a/fml/doc/ja/tutorial/book.sgml b/fml/doc/ja/tutorial/book.sgml
index dd3b2fb4..9b497437 100644
--- a/fml/doc/ja/tutorial/book.sgml
+++ b/fml/doc/ja/tutorial/book.sgml
@@ -2,7 +2,7 @@
This is an sgml using DocBook dtd. Use sgmltools version 2.0.x or above
to generate various output formats.
-$FML: book.sgml,v 1.40 2002/07/23 07:19:46 fukachan Exp $
+$FML: book.sgml,v 1.41 2002/07/23 09:33:25 fukachan Exp $
-->
<!doctype book public "-//FML//DTD DocBook V3.1-Based Extension//EN" [
@@ -78,7 +78,10 @@ $FML: book.sgml,v 1.40 2002/07/23 07:19:46 fukachan Exp $
&chapter.usage.user;
&chapter.usage.onhost;
- &chapter.usage.customize;
+
+ <!-- customize -->
+ &chapter.customize.mlstyle;
+ &chapter.customize.header;
<!-- スレッド追跡システム -->
&chapter.threadtrack.usage;
@@ -129,7 +132,7 @@ $FML: book.sgml,v 1.40 2002/07/23 07:19:46 fukachan Exp $
<!-- 記事の配送とコマンドの処理 -->
&chapter.delivery;
&chapter.message;
- &chapter.replybyfml;
+ <!-- &chapter.replybyfml; -->
<!-- コマンド -->
&chapter.command;
diff --git a/fml/doc/ja/tutorial/customize/chapter.header.sgml b/fml/doc/ja/tutorial/customize/chapter.header.sgml
new file mode 100644
index 00000000..92056cc5
--- /dev/null
+++ b/fml/doc/ja/tutorial/customize/chapter.header.sgml
@@ -0,0 +1,15 @@
+<!--
+ $FML$
+-->
+
+<chapter id="customize.header">
+ <title>
+ ヘッダの書き換え
+ </title>
+
+<para>
+ヘッダ情報は Mail::Header クラスのオブジェクトに収納されています。
+Mail::Header で操作可能なことは何でもできます。
+</para>
+
+</chapter>
diff --git a/fml/doc/ja/tutorial/customize/chapter.sgml b/fml/doc/ja/tutorial/customize/chapter.ml_style.sgml
index a5084533..8d10670b 100644
--- a/fml/doc/ja/tutorial/customize/chapter.sgml
+++ b/fml/doc/ja/tutorial/customize/chapter.ml_style.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: customize.sgml,v 1.2 2002/07/07 01:57:12 fukachan Exp $
+ $FML: chapter.sgml,v 1.1.1.1 2002/07/28 04:59:56 fukachan Exp $
-->
<chapter id="cuctomize">
<title>
diff --git a/fml/doc/ja/tutorial/include/chapters.ent b/fml/doc/ja/tutorial/include/chapters.ent
index 1282fa31..89f0caad 100644
--- a/fml/doc/ja/tutorial/include/chapters.ent
+++ b/fml/doc/ja/tutorial/include/chapters.ent
@@ -1,5 +1,5 @@
<!--
- $FML: chapters.ent,v 1.43 2002/07/23 07:19:47 fukachan Exp $
+ $FML: chapters.ent,v 1.44 2002/07/23 09:34:07 fukachan Exp $
-->
<!entity versin "1.1">
@@ -48,18 +48,19 @@
<!-- パート II: 使い方の例とカスタマイズについて -->
-<!entity chapter.usage.user SYSTEM "usage/user.sgml">
-<!entity chapter.usage.onhost SYSTEM "usage/onhost.sgml">
-<!entity chapter.usage.customize SYSTEM "usage/customize.sgml">
-
-<!entity sect.usage.post SYSTEM "usage/post.sgml">
-<!entity sect.usage.command SYSTEM "usage/command.sgml">
-<!entity sect.usage.procmail SYSTEM "setup/procmail.sgml">
-<!entity sect.usage.makefml SYSTEM "usage/makefml.sgml">
-<!entity sect.usage.fmlconf SYSTEM "usage/fmlconf.sgml">
-<!entity sect.usage.fmldoc SYSTEM "usage/fmldoc.sgml">
-<!entity sect.usage.fmlthread SYSTEM "usage/fmlthread.sgml">
-<!entity sect.usage.fmlhtmlify SYSTEM "usage/fmlhtmlify.sgml">
+<!entity chapter.usage.user SYSTEM "usage/user.sgml">
+<!entity chapter.usage.onhost SYSTEM "usage/onhost.sgml">
+<!entity chapter.customize.mlstyle SYSTEM "customize/chapter.ml_style.sgml">
+<!entity chapter.customize.header SYSTEM "customize/chapter.header.sgml">
+
+<!entity sect.usage.post SYSTEM "usage/post.sgml">
+<!entity sect.usage.command SYSTEM "usage/command.sgml">
+<!entity sect.usage.procmail SYSTEM "setup/procmail.sgml">
+<!entity sect.usage.makefml SYSTEM "usage/makefml.sgml">
+<!entity sect.usage.fmlconf SYSTEM "usage/fmlconf.sgml">
+<!entity sect.usage.fmldoc SYSTEM "usage/fmldoc.sgml">
+<!entity sect.usage.fmlthread SYSTEM "usage/fmlthread.sgml">
+<!entity sect.usage.fmlhtmlify SYSTEM "usage/fmlhtmlify.sgml">
diff --git a/fml/doc/ja/tutorial/module/IO::Adapter.sgml b/fml/doc/ja/tutorial/module/IO::Adapter.sgml
index f2233c93..5824190d 100644
--- a/fml/doc/ja/tutorial/module/IO::Adapter.sgml
+++ b/fml/doc/ja/tutorial/module/IO::Adapter.sgml
@@ -1,33 +1,34 @@
<!--
- $FML: IO::Adapter.sgml,v 1.3 2002/04/01 23:41:05 fukachan Exp $
+ $FML: IO::Adapter.sgml,v 1.4 2002/07/02 10:39:36 fukachan Exp $
-->
<chapter id="module.io.adapter">
<title>
- IO::Adapter
+ IO へのアダプター層 (IO::Adapter クラス)
</title>
-<sect1>
+
+<sect1 id="module.io.adapter.overview">
<title>
- IO へのアダプター層 (IO::Adapter)
+ IO::Adapter の概要
</title>
<para>
-&fmldevel; でのメンバーリストの読み書きは
-IO::Adapter という抽象クラスを通じて、
-アドレスの登録/削除を行なうようになっています。
-</para>
-
-<para>
-例えば次のように使っています。
+&fmldevel; でのメンバーリストの読み書き、
+例えばアドレスの登録/削除、は
+IO::Adapter という抽象クラスを通じて行ないます。
+例えば次のように使います。
<screen>
use IO::Adapter;
-$obj = new IO::Adapter ($map, $map_params);
+$obj = new IO::Adapter $map, $map_params;
$obj->open || croak("cannot open $map");
-while ($x = $obj->getline) { ... }
+while ($x = $obj->get_next_key()) { ... }
$obj->close;
</screen>
-ここで $map は次のようなものが使えます。
+</para>
+
+<para>
+$map は次のようなものが使えます。
<screen>
file:/var/spool/ml/elena/actives
unix.group:root
@@ -42,33 +43,172 @@ ldap:id (未実装)
file: は通常のファイルです。
unix.group:root は /etc/group の root のエントリにあるユーザのリストを、
nis.group:root は NIS の root のエントリにあるユーザのリストです。
-</para>
-
-<para>
mysql:id は MySQL へのアクセスです。
mysql:id で指定されたパラメータを用います。
このパラメータは new() を実行する際に別途与える必要があります。
+</para>
+
+</sect1>
+
+
+<sect1 id="module.io.adapter.methods">
+ <title>
+ メソッド
+ </title>
+
+<para>
+IO::Adapter の提供する公式なメソッドは次の通りです。
+<screen>
+new()
+open()
+close()
+
+get_next_key()
+
+add(KEY)
+delete(KEY)
+
+getpos()
+setpos(NUM)
+eof()
+
+touch()
+
+find(REGEXP, $args)
+</screen>
+です。
+KEY はデータベースのプライマリキーで、
+通常メールアドレスです。
+REGEXP は正規表現ですが、たいていはメールアドレスです。
+</para>
+
+<para>
+多くのマップを同じように扱うために、
+メソッドは極力最小限にものに限定する必要があります。
+</para>
+
+<para>
+最低限のメソッド群の定義は実際に実装してみる実験を通じて選ばれました。
+そして、むしろファイルより SQL との IO を想定しつつ、選びました。
+そのため、&fml4; のファイルを前提にした様々な処理にくらべ、
+やや不自由に思えるでしょうが、そうしないとうまく抽象化ができません。
+</para>
+
+</sect1>
+
+
+<sect1 id="module.io.adapter.map.file">
+ <title>
+ file マップ
+ </title>
+
+<para>
+『file:ファイル名』もしくは単なる『ファイル名』は
+ごく普通のテキストファイルへの IO を抽象化したものです。
+</para>
+
+</sect1>
+
+
+<sect1 id="module.io.adapter.map.unixgroup">
+ <title>
+ unixgroup マップ
+ </title>
+
+<para>
+/etc/group を抽象化します。
+当然 READ ONLY です。
+</para>
+
+<para>
+/etc/group の
+<screen>
+wheel:*:0:root,rudo,kenken
+</screen>
+は IO::Adapter では unixgroup:wheel としてアクセスできます。
+<screen>
+$obj = new IO::Adapter "unixgroup:wheel";
+</screen>
+というオブジェクトに対し get_next_key() すると
+グループのメンバーが順に返されます。
+つまり 3 行のファイルを読みだすものとして、
+<screen>
+root
+rudo
+kenken
+</screen>
+のようなファイルとみなされます。
+</para>
+
+</sect1>
+
+
+<sect1 id="module.io.adapter.map.nis">
+ <title>
+ NIS マップ
+ </title>
+
+<para>
+/etc/group とほぼ同様ですが、ソースが
+NIS/YP から group にあたるものを引っ張ってくるところだけが異なります。
+</para>
+
+</sect1>
+
+
+<sect1 id="module.io.adapter.map.mysql">
+ <title>
+ MySQL マップ
+ </title>
+
+<para>
+&fmldevel; の設定では .cf の中にSQL の設定を書いておきたいと思います。
+つまり一つの cf ファイルにいろいろ書けるようにしておきたい。
+</para>
+
+<para>
+そこで、[mysql:members] (から終りまで、もしくは次の =head 文まで)の
+ブロックで、マップのタイプと識別子を表現しています。
+<screen>
+config.cf の例
+
+member_maps = mysql:members
+
+recipient_maps = mysql:recipients
+
+[mysql:members]
+
+sql_server = localhost
+sql_user = fml
+sql_password = uja
+sql_database = fml
+sql_table = ml
+
+sql_find = select * from ...
+
+ ...
+</screen>
+</para>
+
+<para>
+IO::Adapter は
+<screen>
+new IO::Adapter "mysql:members", $config;
+</screen>
+のように呼び出します。
+この $config は次のようなハッシュ・リファレンスになっていることが
+期待されています。
<screen>
-my $map = 'mysql:toymodel';
-my $map_params = {
- $map => {
- sql_server => 'localhost',
- user => 'fukachan',
- user_password => 'uja',
- database => 'fml',
- table => 'ml',
- params => {
- ml_name => 'elena',
- file => 'members',
- },
- },
-};
-
-my $obj = new IO::Adapter ($map, $map_params);
-$obj->open();
-$obj->add( 'rudo@nuinui.net' );
-$obj->close();
+$config => {
+ [mysql:members] => {
+ sql_sever => localhost
+ ...
+ }
+}
</screen>
+FML::Config は .cf から上のようなハッシュを構成します。
+よって IO::Adapter の new() の際には、
+FML::Config のオブジェクトを引数で渡せば OK です。
</para>
</sect1>
diff --git a/fml/doc/ja/tutorial/usage/command.sgml b/fml/doc/ja/tutorial/usage/command.sgml
index 21d25da8..8d2ab602 100644
--- a/fml/doc/ja/tutorial/usage/command.sgml
+++ b/fml/doc/ja/tutorial/usage/command.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: command.sgml,v 1.3 2002/07/05 04:01:37 fukachan Exp $
+ $FML: command.sgml,v 1.4 2002/07/07 01:57:12 fukachan Exp $
-->
<sect1 id="fml.command.bymail">
@@ -13,6 +13,16 @@ fml にメールで文字列(コマンド)を送り込むことで、fml に特定の処理をして
寄せるなどの処理です。
</para>
+<important>
+<para>
+fml の基本的な使い方は makefml での操作です。
+ユーザが使えるコマンド/ユーザに提供されているコマンド操作は
+その操作のごく一部です。
+それは makefml のコマンドの一部を使えなくし、
+適宜 confirmation を付け加えたものといえます。
+</para>
+</important>
+
<sect2 id="fml.command.bymail.flow">
<title>
diff --git a/fml/doc/ja/tutorial/usage/customize.sgml b/fml/doc/ja/tutorial/usage/customize.sgml
deleted file mode 100644
index 81cfc738..00000000
--- a/fml/doc/ja/tutorial/usage/customize.sgml
+++ /dev/null
@@ -1,13 +0,0 @@
-<!--
- $FML: customize.sgml,v 1.1 2002/07/05 04:01:37 fukachan Exp $
--->
-<chapter id="cuctomize">
- <title>
- カスタマイズの事例
- </title>
-
-
-<!-- procmail -->
-&sect.usage.procmail;
-
-</chapter>
diff --git a/fml/doc/ja/tutorial/usage/fmlconf.sgml b/fml/doc/ja/tutorial/usage/fmlconf.sgml
index ac9739ed..c8f7e318 100644
--- a/fml/doc/ja/tutorial/usage/fmlconf.sgml
+++ b/fml/doc/ja/tutorial/usage/fmlconf.sgml
@@ -1,10 +1,10 @@
<!--
- $FML: fmlconf.sgml,v 1.2 2002/04/01 23:41:07 fukachan Exp $
+ $FML: fmlconf.sgml,v 1.3 2002/07/07 01:57:12 fukachan Exp $
-->
<sect1 id="usage.fmlconf">
<title>
- 設定を表示する (fmlconf)
+ 設定を表示する (fmlconf コマンド)
</title>
<para>
diff --git a/fml/doc/ja/tutorial/usage/fmldoc.sgml b/fml/doc/ja/tutorial/usage/fmldoc.sgml
index ef488294..a072b11f 100644
--- a/fml/doc/ja/tutorial/usage/fmldoc.sgml
+++ b/fml/doc/ja/tutorial/usage/fmldoc.sgml
@@ -1,10 +1,10 @@
<!--
- $FML: fmldoc.sgml,v 1.1 2001/11/24 03:22:58 fukachan Exp $
+ $FML: fmldoc.sgml,v 1.2 2002/07/07 01:57:12 fukachan Exp $
-->
<sect1 id="usage.fmldoc">
<title>
- モジュールのドキュメントを表示する (fmldoc)
+ モジュールのドキュメントを表示する (fmldoc コマンド)
</title>
<para>
diff --git a/fml/doc/ja/tutorial/usage/fmlhtmlify.sgml b/fml/doc/ja/tutorial/usage/fmlhtmlify.sgml
index 1962fb50..1d0cb6c1 100644
--- a/fml/doc/ja/tutorial/usage/fmlhtmlify.sgml
+++ b/fml/doc/ja/tutorial/usage/fmlhtmlify.sgml
@@ -1,10 +1,10 @@
<!--
- $FML: fmlhtmlify.sgml,v 1.2 2002/07/07 01:57:12 fukachan Exp $
+ $FML: fmlhtmlify.sgml,v 1.3 2002/07/23 09:33:10 fukachan Exp $
-->
<sect1 id="usage.fmlhtmlify">
<title>
- 記事を HTML 化する (fmlhtmlify)
+ 記事を HTML 化する (fmlhtmlify コマンド)
</title>
<para>
diff --git a/fml/doc/ja/tutorial/usage/fmlthread.sgml b/fml/doc/ja/tutorial/usage/fmlthread.sgml
index ed5ab6fc..cd975917 100644
--- a/fml/doc/ja/tutorial/usage/fmlthread.sgml
+++ b/fml/doc/ja/tutorial/usage/fmlthread.sgml
@@ -1,10 +1,10 @@
<!--
- $FML: fmlthread.sgml,v 1.1 2001/11/24 03:22:58 fukachan Exp $
+ $FML: fmlthread.sgml,v 1.2 2002/07/07 01:57:12 fukachan Exp $
-->
<sect1 id="usage.fmlthread">
<title>
- スレッドを表示する (fmlthread)
+ スレッドを表示する (fmlthread コマンド)
</title>
<para>
diff --git a/fml/doc/ja/tutorial/usage/makefml.sgml b/fml/doc/ja/tutorial/usage/makefml.sgml
index f90ceea4..e7072e0d 100644
--- a/fml/doc/ja/tutorial/usage/makefml.sgml
+++ b/fml/doc/ja/tutorial/usage/makefml.sgml
@@ -1,98 +1,246 @@
<!--
- $FML: makefml.sgml,v 1.3 2002/07/02 10:39:39 fukachan Exp $
+ $FML: makefml.sgml,v 1.4 2002/07/07 01:57:12 fukachan Exp $
-->
-<sect1 id="usage.makefml">
+
+<sect1 id="usage.makefml.newml">
<title>
- makefml を使って、ユーザの登録/削除他(あらゆる:)
+ MLの作成
</title>
<para>
-makefml の基本的な使い方は &fml4; の makefml と同様です。
-というより、できるだけ互換性を保つように構築する予定です。
+<screen>
+% su fml
+% makefml newml ML名
+</screen>
+ML名は @ 抜きの場合デフォルトのドメイン、
+アドレスを完全に指定すればバーチャルドメインまで含めて
+makefml がよろしくがんばります。
+例えば
+<screen>
+% makefml newml elena
+% makefml newml elena@fml.org
+</screen>
</para>
<para>
-現状 makefml に命令を与えると admin コマンドと同じ動作をするようになっ
-ています。
-つまり特権的な動作ということです。
-例えば、メンバーの登録に confirmation は必要ありません。
+くわしくは
+<link linkend="setup.newml">
+<xref linkend="setup.newml">
+</link>
+を参照して下さい。
</para>
-<para>
-現在使えるコマンドは以下のものです。
-<itemizedlist>
- <listitem>
- <para>
- メンバーの登録
- (
- subscribe
- add
- )
- </para>
- </listitem>
-
- <listitem>
- <para>
- メンバーの削除
- (
- bye
- remove
- resign
- signoff
- unsubscribe
- )
- </para>
- </listitem>
-
- <listitem>
- <para>
- アドレスの変更
- (
- chaddr
- )
- </para>
- </listitem>
-
- <listitem>
- <para>
- リモート管理者の登録
- (
- addadmin
- addpriv
- )
- </para>
- </listitem>
-
- <listitem>
- <para>
- リモート管理者の削除
- (
- byeadmin
- byepriv
- )
- </para>
- </listitem>
-
- <listitem>
- <para>
- MLの作成
- (
- newml
- )
- </para>
- </listitem>
-
- <listitem>
- <para>
+</sect1>
+
+
+<sect1 id="usage.makefml.rmml">
+ <title>
MLの削除
- (
- rmml
- )
- </para>
- </listitem>
+ </title>
+
+<para>
+<screen>
+% su fml
+% makefml rmml ML名
+</screen>
+ML名は @ 抜きの場合デフォルトのドメイン、
+アドレスを完全に指定すればバーチャルドメインまで含めて
+makefml がよろしくがんばります。
+例えば
+<screen>
+% makefml rmml elena
+% makefml rmml elena@fml.org
+</screen>
+</para>
+
+<para>
+できるだけ newml の反対の動作をします。
+ホームディレクトリを消すとか
+MTA の alias の該当エントリを消すといったことなども
+できそうなことは全て頑張ります。
+</para>
+
+</sect1>
+
+
+<sect1 id="usage.makefml.user.adddel">
+ <title>
+ MLメンバーの登録と削除
+ </title>
+
+<para>
+一般のMLメンバーの登録は useradd 削除は userdel です。
+<screen>
+% su fml
+% makefml useradd ML名 メールアドレス
+% makefml userdel ML名 メールアドレス
+</screen>
+ML名は @ 抜きの場合デフォルトのドメイン、
+アドレスを完全に指定すればバーチャルドメインまで含めて
+makefml がよろしくがんばります。
+例えば
+<screen>
+% su fml
+% makefml useradd elena rudo@nuinui.net
+% makefml userdel elena rudo@nuinui.net
+% makefml useradd elena@fml.org rudo@nuinui.net
+% makefml userdel elena@fml.org rudo@nuinui.net
+</screen>
+</para>
+
+<para>
+なお、便利なように
+useradd コマンドは
+<screen>
+useradd
+adduser
+subscribe
+add
+</screen>
+どれを使っても同じです。
+また、userdel は
+<screen>
+userdel
+deluser
+bye
+remove
+resign
+signoff
+unsubscribe
+</screen>
+でも同様です。
+</para>
+
+
+</sect1>
-</itemizedlist>
+
+<sect1 id="usage.makefml.user.chaddr">
+ <title>
+ MLメンバーのアドレス変更
+ </title>
+
+
+<para>
+<screen>
+% su fml
+% makefml useradd ML名 古いメールアドレス 新しいメールアドレス
+</screen>
+ML名は @ 抜きの場合デフォルトのドメイン、
+アドレスを完全に指定すればバーチャルドメインまで含めて
+makefml がよろしくがんばります。
+例えば
+<screen>
+% su fml
+% makefml chaddr elena rudo@nuinui.net teddy@nuinui.net
+% makefml chaddr elena@fml.org rudo@nuinui.net teddy@nuinui.net
+</screen>
+</para>
+
+
+</sect1>
+
+
+
+<sect1 id="usage.makefml.admin.adddel">
+ <title>
+ リモート管理者の登録と削除
+ </title>
+
+<para>
+一般のMLメンバーの登録は addadmin 削除は deladmin です。
+<screen>
+% su fml
+% makefml addadmin ML名 メールアドレス
+% makefml deladmin ML名 メールアドレス
+</screen>
+ML名は @ 抜きの場合デフォルトのドメイン、
+アドレスを完全に指定すればバーチャルドメインまで含めて
+makefml がよろしくがんばります。
+例えば
+<screen>
+% su fml
+% makefml addadmin elena rudo@nuinui.net
+% makefml deladmin elena rudo@nuinui.net
+% makefml addadmin elena@fml.org rudo@nuinui.net
+% makefml deladmin elena@fml.org rudo@nuinui.net
+</screen>
+</para>
+
+<para>
+なお、便利なように
+addadmin コマンドは
+<screen>
+addadmin
+addpriv
+</screen>
+どれを使っても同じです。
+また、deladmin は
+<screen>
+byeadmin
+byepriv
+</screen>
+でも同様です。
+</para>
+
+
+</sect1>
+
+
+
+<sect1 id="usage.makefml.moderator.adddel">
+ <title>
+ モデレータの登録と削除
+ </title>
+
+<para>
+一般のMLメンバーの登録は addmoderator 削除は delmoderator です。
+<screen>
+% su fml
+% makefml addmoderator ML名 メールアドレス
+% makefml delmoderator ML名 メールアドレス
+</screen>
+ML名は @ 抜きの場合デフォルトのドメイン、
+アドレスを完全に指定すればバーチャルドメインまで含めて
+makefml がよろしくがんばります。
+例えば
+<screen>
+% su fml
+% makefml addmoderator elena rudo@nuinui.net
+% makefml delmoderator elena rudo@nuinui.net
+% makefml addmoderator elena@fml.org rudo@nuinui.net
+% makefml delmoderator elena@fml.org rudo@nuinui.net
+</screen>
+</para>
+
+</sect1>
+
+
+<sect1 id="usage.makefml.log">
+ <title>
+ ログを見る
+ </title>
+
+<para>
+<screen>
+% makefml log elena
+% makefml log elena@fml.org
+</screen>
+</para>
+
+</sect1>
+
+
+<sect1 id="usage.makefml.list">
+ <title>
+ メンバーリスト見る
+ </title>
+
+<para>
+<screen>
+% makefml list elena
+</screen>
</para>
</sect1>
diff --git a/fml/doc/ja/tutorial/usage/onhost.sgml b/fml/doc/ja/tutorial/usage/onhost.sgml
index 89d30e09..78854623 100644
--- a/fml/doc/ja/tutorial/usage/onhost.sgml
+++ b/fml/doc/ja/tutorial/usage/onhost.sgml
@@ -1,24 +1,34 @@
<!--
- $FML: onhost.sgml,v 1.1 2001/11/24 03:22:59 fukachan Exp $
+ $FML: onhost.sgml,v 1.2 2002/07/05 04:01:37 fukachan Exp $
-->
<chapter id="usage.onhost">
<title>
- ML管理者にできること (MLサーバのホスト上で makefml を使う)
+ MLサーバのホスト上でコマンドを使ってできること
+ (MLの一番偉い管理者にできること)
</title>
+<para>
+makefml の基本的な使い方は &fml4; の makefml と同様です。
+というより、できるだけ互換性を保つように構築する予定です。
+</para>
+
<sect1>
<title>
- ホスト上でできること
+ ホスト上でできること、その権限について
</title>
<para>
-MLサーバのホストに入ることができる(例: slogin してシェルが取れる)
-人は、通常MLにとって最強の人を意味します。
+現状 makefml に命令を与えると admin コマンドと同じ動作をするようになっ
+ています。
+つまり特権的な動作ということです。
+例えば、メンバーの登録に confirmation は必要ありません。
</para>
<para>
+MLサーバのホストに入ることができる(例: slogin してシェルが取れる)
+人は、通常MLにとって最強の人を意味します。
ファイルを直接編集することで、どんなことでもできるわけですから、
無敵です。
</para>
@@ -31,6 +41,8 @@
<para>
そのため、通常は makefml ( /usr/local/bin/makefml )を
使うことで、fml を操作して下さい。
+というのが fml の操作ポリシーです。
+もちろんファイルを編集しても構いませんが。
</para>
</sect1>