web-dev-qa-db-ja.com

Postfix自動作成Maildir

私はしばらくの間、壁に頭をぶつけてきました。基本的に、ここに要約があります:

MXレコードは、実際にメールをルーティングするためのエイリアスを含むフロントエンドSMTPサーバーを指しています。エイリアスも、クライアントが接続するバックエンドストレージサーバーへのアクセスもありません。

バックエンドのメールサーバーをアップグレードしています。現在、サーバー上のすべての電子メールユーザーに対してユーザーが作成され、メールボックスが作成されます。新しいサーバーでは、すべてがPAMを介してLDAPサーバーに認証されます(すべてが正常に機能しています)。私の目標は、PostfixにユーザーのMaildirディレクトリを自動的に作成させることです。これは、777のアクセス許可を持つ/ homeディレクトリがある場合は正常に機能しますが、明らかな理由から、これは避ける必要があります。 Postfixを実行しているユーザーのグループ所有者を使用して、/ homeの775権限でこれを実行したいのですが、使用するユーザーがわからないようです。 777権限を使用すると、メッセージ配信時に/ home/$ user/Maildirディレクトリが作成されます。 777の許可なしでこれを行う方法を誰かが知っていますか?

私が取り組んでいるシステムは、64ビットのDebian Lenny5.07インストールです。

何かアドバイスをいただければ幸いです。

4
Eugene

これに対する答えは、Postfixシステムがどのように構成されているかによって異なります。 pamとLDAPについて言及しているので、すべてのドメインが$ mydestinationにあるか、1つのドメイン(example.comなど)のみを使用していると思います。

Mysql/pgsqlマップの代わりにLDAPマップを使用してvirtual_mailbox_domainsを構成する方が簡単な場合があります(ただし、ロジックはまったく同じです)。

ログイン権限のない単一のシステムユーザーを作成します。ここでは、vmail:vmailのユーザー名とグループを想定しますが、特定の名前は重要ではありません。

LDAPで、vmailの$ HOMEを基準にしたメールボックスパスを作成します(したがって、maildirは/ home/vmail/user/Maildir /になります)。

ドメインをvirtual_mailbox_domainsに追加します。ユーザー名を入力として受け取り、ユーザー名/ Maildirを出力として返すvirtual_mailbox_mapsマップを作成します。

セットする


virtual_mailbox_domains = example.com
virtual_mailbox_base = /home/vmail/
virtual_mailbox_maps = ldap:/etc/postfix/ldap_virtual.cf
virtual_uid_maps = static:$uid_of_vmail
virtual_gid_maps = static:$gid_of_vmail
#$uid_of_vmail and $gid_of_vmail are obtained from the output of 
#id vmail

詳細(および内容)については、 http://www.postfix.org/ldap_table.5.html および http://www.postfix.org/VIRTUAL_README.html を参照してください。 ldap_virtual.cfを入れる必要があります)。

FWIW、Postfixは、配信先のシステムユーザーのuid/gidとしてローカル配信プロセスを実行します。

/ homeの一般的なアクセス許可は755で、所有者とグループの両方がルートですが、ユーザーは〜user内に書き込むことができます。したがって、Postfixは〜user/Maildir /に問題なく配信されますが、〜userを作成することはできません。仮想ユーザーを使用すると、すべてのメールボックスへのアクセスを単一のuid/gidに許可することでこの問題を回避できます。このアクセスは、pop3/imapソフトウェアによってのみアクセスされます。ユーザーがメールボックスに直接アクセスすることはできません。

6
Devdas

Postfix(mailグループのメンバー)がディレクトリに書き込めない場合、配信を完了できません。秘訣は、mailグループにユーザーのホームディレクトリでの読み取り/書き込みアクセス権を持たせることです。/homeに接尾辞を入れるには775で十分です。ただし、割り当てられたグループはおそらくmailではなく、所有者は確かにmailではないため、一度そこに入ると、/ home/$ userにディレクトリを作成するのに十分ではない可能性があります。 、およびワールドビットは最も確実にrwxに設定されていません。したがって、接尾辞の場合、それは「あなたのためのスープはありません」です。

一時的な対策として、ユーザーのディレクトリのグループをいつでもmailに設定できますが、私は本当にしないことをお勧めしますこの。

より良い解決策は、EXT3とEXT4で利用可能な 拡張属性 を使用することです。これにより、1つだけでなく複数のグループを定義できます。したがって、問題を回避してディレクトリの作成を許可することで、r-xではなくmailを使用してすべてのユーザーディレクトリにrwxグループを追加できます。

興味がありますが、/var/spool/mail/$userを使用して、それで済ませてみませんか?その配置を使用すると、問題全体が解決されます。ディレクトリのグループは事実上mailであり、「Ineed777」の問題全体をバイパスします。私はあなたがユーザーのホームディレクトリか何かをNFSマウントする必要があると推測することができるだけです。

3
Avery Payne