1. DJB/netqmail/man/qmail-pw2u
/qmail-getpw /qmail-lspawn /qmail-newu /qmail-pw2u /qmail-smtpd |
2. qmail-pw2u(8)
qmail-pw2u : passwd ファイルから ../../qmail-users 形式のアドレス対応表(assignment)を作る
使い方
qmail-pw2u [ -/ohHuUC ] [ -cchar ]
2.1. 説明
標準入力からV7形式のパスワードファイルを読み込み、 標準出力に qmail-users形式の対応表を書く。
V7形式のパスワードファイルとは各行が以下の形式をした行の集まりである。
- user:password:uid:gid:gecos:home:shell
userはアカウント名、uidとgidはそのアカウントのuser idとgroup idである。 また、homeはホームディレクトリである。 password, gecos, shellなどは無視される。
2.2. qmail-lspawn
qmail-pw2uの出力を/var/qmail/users/assignに書き出し、../qmail-newuを実行しておくと、(訳注: cdb形式)
qmail-pw2uの 出力した割り付け(../assignments)に従って ../qmail-lspawnが配送する。
[訳注] spam 分離にはqmail-pw2uの出力のままでは機能不足を感じて、assignを手直しして使っている。-- ToshinoriMaeno 2021-04-28 14:38:42
警告: passwdファイルのuser, uid, gid, ホームディレクトリなどを 変更した場合には
- qmail-pw2uとqmail-newuを実行して、 qmail-lspawnが変更を読み取れるようにすること。
2.3. RULES
qmail-pw2uは以下のように qmail-getpwと同様のルールに従った処理をする。
- 以下のどれかに当てはまるユーザは対象としない。
uidがゼロである ホームディレクトリが存在しない ホームディレクトリの持ち主ではない 大文字を含んでいる
各ユーザ(user)はuserというアドレスのほか、user-anythingという 形のアドレスすべてを制御するようになる。
- aliasはその他のすべてのアドレスを受け取り、制御する。(訳注:これもassignmentsでの指定)
2.4. 特別ファイル
/var/qmail/users/ ディレクトリに以下のファイルを作れば、以下の機能が使える。
- include
- 許可されたユーザ, 一行にひとり。 includeがあったとき、書かれていないユーザはいなかったものとして扱われる。
- alias は含まれている必要がある。(ないと: qmail-pw2u: fatal: unable to find alias user)
- 許可されたユーザ, 一行にひとり。 includeがあったとき、書かれていないユーザはいなかったものとして扱われる。
- exclude
- 無視されるユーザ,一行にひとり。 excludeがあったとき、そこに書かれたユーザはいなかったものとして扱われる。
- mailnames
- ユーザの別名。 各行は以下の形である。
- user:mailname1:mailname2:...
- mailname1, mailname1-ext, mailname2 などなどへのメイルは userに配信される。
- ユーザの別名。 各行は以下の形である。
- subusers
- 追加のアドレス。各行は以下の形である。
- sub:user:pre:
- ここでhomeはuserのホームディレクトリである。 sub-extあてはhome/.qmail-pre-extが指示する。
- 追加のアドレス。各行は以下の形である。
- append
- 追加のassignment。qmail-pw2uの出力の最後に付け加えられる。
これだけでは機能不足。とくにalias周辺。
2.5. オプション
-o (Default.) ホームディレクトリが存在しないか、あるいは読めないユーザは無視する。 ホームディレクトリの持ち主がユーザ自身でない場合も無視する。 -h ホームディレクトリが存在しない時は中断する。 全ユーザがホームディレクトリを持っているはずの場合に使うのがよい。 ホームディレクトリの持ち主が違っているユーザは無視される。 -H ホームディレクトリの存在や持ち主を検査しない。 -U (Default.)ユーザ名に英大文字を含むユーザは無視する。 -u ユーザ名に英大文字を許す。 -cchar 拡張アドレス区切り文字に"-"でなく、charを使用する。 -C 拡張アドレス機能を使わないようにする。 -/ (拡張アドレスに対して) home/.qmail-...の代わりに home/.qmail-/...を使う。
qmail-users(5), qmail-lspawn(8), qmail-newu(8), qmail-getpw(8)