我正在尝试构build一个Ubuntu 12.04邮件服务器。
必须:对现有的Open-LDAP服务器进行身份validation。 存储在现有NFS服务器上的Maildirs中,所有内容都是8:8(邮件:邮件)。 auth是smtp和imap所必需的。
应该(我认为):Postfix使用Dovecot SASL。
事情工作正常除了,当我使用ldap的userdb:
userdb { driver = ldap args = /etc/dovecot/ldap-userdb.conf.ext }
…然后将maildir文件作为来自LDAP的UID:GID读取/写入。 但邮件必须由8:8拥有(因为其他邮件服务器)我得到的错误如:
Error: open(/var/mail/...) ... failed: Permission denied (euid=1193(<...>) egid=555(<...>) missing +r perm .... dir owned by 8:8 ...
但如果我使用静态userdb:
userdb { driver = static args = uid=8 gid=8 home=/var/mail/%u }
…然后当发送邮件从一个LDAP用户到新的邮件服务器上的另一个LDAP用户,然后我得到一个错误:(电子邮件到[email protected])
postfix/local[32371]: C6F7561735: to=<[email protected]>, relay=local, delay=0.04, delays=0.02/0.01/0/0.01, dsn=5.1.1, status=bounced (unknown user: "timmytester")
…但在本地域以外的电子邮件工作正常。
这对我来说,使用静态userdb会干扰提供SASL的Dovecot。 所以我试图只是在8:8滑入ldap userdbconfiguration:(我使用相同的configuration文件为passdb和userdb ldap,符号链接)
uris = ldap://ldapserver.domain.com dn = cn=admin,dc=domain,dc=COM dnpass = secretPW auth_bind = no ldap_version = 3 base = ou=Users, dc=DOMAIN, dc=COM pass_attrs = uid=user,userPassword=password user_attrs = uid=8,gid=8 # <--- here i tried to cheat. pass_filter = (&(objectClass=mailUser)(|(mailDestination=%u)(uid=%n))) default_pass_scheme = SSHA
…这复制静态userdb问题。 未知用户。 但至less我似乎可以在这里做静态的任务。
如果我的邮件可能属于真正的用户:gid,那么我会很好。 Postfix虚拟用户,虚拟域名,所有这些东西似乎都很好。 就在Dovecot 8:8的时候,postfix会得到不好的SASL答案? 要清楚,当我去静态uid:gid文件访问问题消失。 当我去正常的ldap userdb时,未知的用户问题就会消失。 我甚至可以chmod 777一个maildir,直到一个新的邮件被旧的邮件服务器处理并存储为600。
我需要使用不同的SASL包吗? 或者我可以让dovecot做文件访问8:8,同时还使postfix快乐?