Sendmail/dovecot/procmail:Maildir 权限

Sendmail/dovecot/procmail:Maildir 权限

我刚刚花了几个小时在半夜尝试将 Maildir 设置从 Centos 5.6 迁移到 Centos 7.2。我找到了几十个关于如何执行此操作的方法,但都完全没用 - 例如,其中一些提供了特定权限,但没有文件所有权。直接复制 Maildir 目录结构不起作用。

通过反复试验,我现在已经有一个可以工作的设置(没有 SELinux),但有各种问题,可能还有一些漏洞。如果可以改进,我将非常感激您的反馈。

在此设置中,Maildir 位于用户的主目录中(例如,/home/joe~):

  1. ~必须有o+x(在此系统上,所有者是joe:joe,权限711
  2. ~/Maildir必须由 拥有joe:vmail,权限775。权限很重要 - g7 似乎被复制到新创建的消息中(作为 6)
  3. procmailrcUMASK完全不相关,除非它带走任何这些权限 - 只需忽略它
  4. Maildir 下的所有内容必须由 拥有joe:vmail,目录必须被赋予权限775,常规文件也必须被拥有。660
  5. 例如,当 procmail 最终创建一个文件时,Maildir/cur它会使用所有者joe:mail(不是vmail)和权限来创建它664
  6. 实际上,对上述内容的任何更改都会导致 sendmail、dovecot 或 procmail 在传递过程的某个阶段出现故障。

下面的快速破解脚本 - 从 /home 运行,提供用户名。

#!/bin/bash
if [ ! -d "$1" ]; then
    exit 1
fi
echo "Fixing $1..."
chmod o+x "$1"
cd "$1"
chown -R "$1":vmail Maildir
find Maildir -type d -exec chmod 775 {} \;
find Maildir -type f -exec chmod 660 {} \;

相关内容