MLサーバ上でコマンドを使うと(ML管理者に)できること
「MLサーバ上でコマンドを使う」というのは、
「MLサーバ」へ SSH (Secure Shell) でログインし、
makefml (/usr/local/bin/makefml) コマンドもしくは
fml (/usr/local/bin/fml) コマンドを使い、
&fml8; の設定変更をするという操作を意味しています。
makefml の基本的な使い方は &fml4; の makefml と同様です。
できるだけ &fml4; と同じ使い勝手になるように、
つまり互換性を保つように努力しています。
相違点についての詳細は
『』
を参照してください。
ホスト上でできること、その権限について
makefml を使う操作は「confirmation が不要」です。たとえば、メンバーの
登録は、コマンドを実行すると、そのまま処理が行なわれます。これが許され
るのは makefml を実行できる時点で、つまりそのサーバにログインできる時
点で、特権的なユーザであることが認証済みだからです。
「正しくサーバが構築されている」ことが大前提です
(これは &fml8; とは直接の関係がないので説明しません)。
MLサーバのホストに入ることができる(例: ssh してシェルが取れる)人は、
MLにとって最強の権限を持つ人を意味します。ファイルを直接編集すること
で、どんなことでもできるわけですから、無敵です。だから特権的な操作であ
るわけです。
しかしながら、人間まちがいを犯すもので、ついファイルのフォーマットを間
違えたりします。
そのためファイルの直接編集などはせずに、通常は「makefml (
/usr/local/bin/makefml )コマンドを使うことで &fml8; の設定を変更してく
ださい」という運用ポリシーが推奨されています。もちろんファイルを編集し
てもかまいませんが、その場合、内部構造などをよく理解してからにしてくだ
さい。
なお、fml コマンドは引数の順番の異なる makefml 同等品です。
makefml コマンド ML名 オプション
fml ML名 コマンド オプション
コマンドの中身/動作は同じですので、
シンタックスの好き嫌いで、どちらかを選んで使ってください。
コマンドを用意する基準
&fml8; では、機能ごとに個別にコマンドを用意するようにしていますが、
どうも、このポリシーでは、やたらと多くなるだけのようです。「できるだけ
分離せずに makefml に統合するべき」でしょう。そこで、以下のような基準
に基づき用意することにします(2003/03 記)。makefml に統合してある方が
admin コマンドや CGI でも使えるようになりうるので、再利用性が高く、
有益です。
特定のMLに操作を施すコマンド (read/write)
特定のMLに対し、何らかのデータを見るだけでなく変更/書き込み操作をす
る可能性があるなら、makefml (or fml) のコマンドとして実装します。
makefml コマンド ML名 オプション
fml ML名 コマンド オプション
特定のMLのデータを見るコマンド (read only)
特定のMLに対し、データ(ログや何かのサマリ)を見るだけでも、
makefml (or fml) のコマンドとして実装しましょう。
makefml コマンド ML名 オプション
fml ML名 コマンド オプション
データを見るだけのコマンド (read only)
特定のMLと関わりのないコマンドがあり得ます。たとえば、モジュールのド
キュメントを見るとか、OS のアカウントやエイリアス一覧を表示させる類の
ものです。これは fml が頭文字につくコマンドを別途用意します。
fmladdr [-n]
fmlalias [-n]
fmldoc モジュール名
fmlconf [-n] $ml
(ん〜 fmlconf だけ意味が違うか…)
MLごとの操作だが、単なるコマンドの wrapper
PGP / GPG コマンドの操作コマンド(例: fmlpgp)が、これにあたります。
でも、いいのか、この基準は…
実は、下請けのコマンドに渡すオプションを指定する必要があるので、
オプション解析の段階で困ってしまいます。
&fml8; のオプションは解析し、
下請けのコマンドに渡すオプションは解析していはいけません。
「コマンドラインオプションなどを一切考えない特殊なモード」を作り込めば
makefml に移すことが出来ないわけではないはずですが、こまりました。
操作を施すコマンドだが、
特定のMLとの関わりはないかも知れないタイプ (read / write ?)
これが一番困るケースのような気がしますが、どうしても作る必要があるなら、
fml が頭文字につくコマンドを別途用意します。
例: 記事のスプールを HTML 化する。
でも、fml に限らず、ソースが MH フォルダなどでも構わない。
fmlhtmlify [-I DIR] $src_dir $dst_dir
共通のコマンドラインオプション
libexec/ と bin/ にあるプログラム群(.cgi は除く)すべてに共通する
コマンドラインオプションは
--debug
--help
-c file
-o key=value
の4つです。
-c はデフォルトではない main.cf のパスを指定する際に使います。
また、-o により変数(config.cfで指定する変数)の上書きが可能です。
-o は複数回、使っても問題ありません。
-o key1=value1 -o key2=value2
§.usage.makefml;
§.usage.fml;
§.usage.fmladdr;
§.usage.fmlalias;
§.usage.fmlconf;
§.usage.fmldoc;
§.usage.fmlhtmlify;
レシピ’s
§.usage.onhost.recipes;