戻る

原文:http://wiki.dovecot.org/UserIds(6版)
翻訳:龍義(Toyota Tatsuyoshi)

Dovecot でユーザ ID を使う

ユーザ ID もしくは UID は一般的に /etc/passwdfile のシステムユーザ ID を 意味します。 UID は Dovecot や OS からみると単なる数字なので、実際に /etc/passwd にあるそれなしで、単純に UID の数字を使うことは可能でもあります。

Dovecot はシングルシステムユーザの環境で動作していないことになっています。 複数の UID を使うことは、1つのコンポーネントからセキュリティホールが 見つかった場合、攻撃者が全てのシステムを危険にすることをより難しくするために、 特権の分離を許します。

Dovecot のユーザ

通常、何もアクセスすることができない dovecot ユーザを別に作ることを したいでしょう。それは、他に誰も所属することがない、それだけの グループでなければなりません。 それは、Dovecot がユーザログインを行っている間のみ使われ、 ログインしたあとは、 UID は変更されます。

dovecot ユーザはいかなるメールの処理にも使われません - ユーザのメールを dovecot として保存しませんし、メールグループに dovecot を使いません。

設定ファイルでは、 dovecot ユーザは login_user 設定として指定します。

認証されたユーザー

認証のプロセスは、ユーザを認証する多くの異なった方法で、 設定することができます。 全ての場合において、 Dovecot はログインしているユーザの UID を認識する必要が あります。 それぞれのユーザは異なった UID を持っているかもしれませんし、 全員が同じ UID を使うこともできますし、その両方でもできます。 大事なことは、これらの UID のどれも、dovecot ユーザと同じでない、 ということです。

もしユーザが /etc/passwd にいるならば、既にその中に指定されているので、 UID について考えることはありません。 単純に、その人たちの UID を使ってユーザのメールが保存されます。

仮想ユーザでは、UID の割り当ての方針を決める必要があります。 考えなければいけない大事なことは、 もし Dovecot が IMAP や POP3 の実装の中にセキュリティホールを持っていた場合、 攻撃者が同じ UID の人々のメールを読むことができることです。 なので、明らかな最も安全な方法は、全てのユーザを異なった UID に 割り振ることです。 それは、ちょっとした苦痛になるかもしれませんし、 OS は 65536 以上の UID を必ずしもサポートしていません。

よくある割り当ての方針の1つは、もし複数のドメインをサービスしているならば、 ドメインごとに別々の UID を与えることです。 例えば、 user@domain1.com と user2@domain1.com は 1000 番の UID を振り、 user@domain2.com は 1001 を振ります。

グループ ID

グループ ID もしくは GID は、同じグループに所属している他の人とファイルを 共有するために使われます。 現在、 Dovecot はそれについて、本当に維持管理していませんし、 認証されたユーザを同じグループに入れたほうが良いでしょう。 おそらく将来は、 Dovecot がより良い共有メールボックスのサポートを 持つことになると、複数のユーザを使うさらなる意味があることになるでしょう。

umask

umaks の設定は、 Dovecot が新しいファイルとディレクトリを作成するときに、 パーミッションの割り当てを制御します。 UNIX の umask コマンドのように、 それは、ファイルのパーミッションと正反対になります。デフォルトは 077 で、 これは 700 権限でファイルの権限を許可するということです。 この権限のとき、作成したユーザのみが、ファイルを読み書きできます。 もし仮想ドメインや共有フォルダを使っている場合は、umask の設定を 007 に することで、読み書きの権限をグループに許可したいでしょう。 これはファイルの権限が 700 で許可されるでしょう。

例: umask = 007

認証プロセスの UID

設定ファイルのauth_user の指定は、認証されたユーザの UID と 混同してはいけません。 これは dovecot-auth が実行するときの UID を指定するだけです。 デフォルトは root ですが、もし root を必要とした PAM や shadow での認証を していないならば、ここに使用する別の dovecot-auth ユーザを 作りたいかもしれません。