web-dev-qa-db-ja.com

Postfixに十分な権限を持つMaildirディレクトリを作成する方法は?

CentOS 5.5にPostfixがインストールされています。デフォルト設定でlocal配信エージェントを使用したいが、-Maildir directoryスタイルのメールボックスでメールを保存したい。

(デフォルトとして)保存するメールボックスを次の場所に設定すると、

mail_spool_directory = /var/spool/mail/

そして、私は手動でmaildirを作成するので、次のようになります。

[root@dx2200 /]# ls -lah /var/spool/mail/
total 32K
drwxrwxr-x  4 root  mail 4.0K Mar 15 15:01 .
drwxr-xr-x 13 root  root 4.0K Mar 15 14:33 ..
drwxr-xr-x  5 root  root 4.0K Mar 15 14:52 marshra
drwxr-sr-x  5 pedro mail 4.0K Mar 15 15:01 pedro
[root@dx2200 /]# 
[root@dx2200 /]# ls -lah /var/spool/mail/pedro/
total 40K
drwxr-sr-x 5 pedro mail 4.0K Mar 15 15:01 .
drwxrwxr-x 4 root  mail 4.0K Mar 15 15:01 ..
drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:01 cur
drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:01 new
drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:03 tmp
[root@dx2200 /]#

次に、ローカルユーザーpedroにメールを送信しようとすると、メッセージが配信されず、/var/log/maillogは次のように言います。

Mar 15 15:11:00 dx2200 postfix/local[4266]: warning: maildir access problem for UID/GID=1014/1014: error writing message: Permission denied
Mar 15 15:11:00 dx2200 postfix/local[4266]: warning: perhaps you need to create the maildirs in advance
Mar 15 15:11:00 dx2200 postfix/local[4266]: 8D5D11310056: to=<[email protected]>, orig_to=<pedro>, relay=local, delay=0.04, delays=0.02/0.01/0/0.01, dsn=5.3.0, status=bounced (maildir delivery failed: error writing message: Permission denied)

virtual配信エージェントで同様の問題があり、virtual_mailbox_base/var/spool/vmailからホームディレクトリ/home/vmailに変更すると問題が解決しました。 local配信エージェントでもそれを行う必要がありますか? AND IF SO-/var/spoolにメールを保存できないのはなぜですか?

6
malloc4k

編集:コメントに従って完全に書き直された回答

この問題は、SELinuxに関連している可能性があります。実行できます。 sestatusが有効か無効かを確認します。

Maildir配信の場合、postfixは対応するユーザーに変更されるため、宛先ディレクトリーはユーザーが書き込み可能である必要があります。これはすでに事実であるようです。プライバシー上の理由から、chmod -R o-rwx /var/spool/mail/*をお勧めします

完全を期すために:mboxファイルを使用する場合、スプールディレクトリは、chmod -R g+rwX /var/spool/mailを使用して取得するmailグループによって書き込み可能である必要があります。

5
jofel

私はこれとまったく同じ問題をCentOS 7で抱えていました。 SELinuxをオフにしたところ、うまくいきました。したがって、問題は確かにSELinuxです。

強制タイプを確認するには:getenforce

完全にオフにするには、次のように入力します:setenforce 0

0
Kentgrav

あなたの許可:

drwxr-sr-x 2 pedro mail xxxx cur,new,tmp

pedro(あなた)だけが書き込み、mail(サーバー)は読み取りのみできます。

  1. ユーザーをメールに変更し、
  2. chmod 700
  3. 再試行
0
bentomram

間違った権限を持つサブディレクトリの下のユーザーディレクトリで同じエラーが発生しました。たとえば、「user1」のホームディレクトリは/home/subdir/user1でした。また、subdirには「その他」の実行権限がありませんでした。

chmod 755 /home/subdir

私のために問題を修正しました。ユーザーディレクトリには、依然として「700」権限が付与されています。

拒否された権限がユーザーのディレクトリではなく、その上のディレクトリにあったため、エラーメッセージは誤解を招くものでした。

0
mivk

/ homeディレクトリの拡張ACLに対処できないpostfixまで同じ問題を追跡しました。

ACLエントリは、ユーザーが特定のグループに所属することにより、ユーザーがACLエントリを明示的にリストしてトラバースできるようにしました。しかし、私はposixを手放すためだけにo = xをリストに追加する必要がありました。

0
AnrDaemon