Postfixのセットアップから、deliverをnobody:nobodyとして実行していて、dovecotのauth-workerソケットに接続できません。それは私のdovecotの設定です:
# 2.0.13: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-lts x86_64
auth_mechanisms = plain login
auth_username_format = %Lu
disable_plaintext_auth = no
first_valid_gid = 65534
mail_location = maildir:/var/spool/vmail/%d/%u/
mail_privileged_group = postfix
passdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
protocols = imap pop3
service auth {
user = nobody
unix_listener login/auth-master {
mode = 0666
}
unix_listener login/auth {
group = postfix
user = postfix
mode = 0660
}
}
ssl = no
userdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
verbose_proctitle = yes
protocol imap {
imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
}
protocol pop3 {
pop3_client_workarounds = Outlook-no-nuls oe-ns-eoh
pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
postmaster_address = [email protected]
sendmail_path = /usr/sbin/sendmail
}
それは私がログに持っているものです:
Aug 5 10:10:21 localhost dovecot: lda: Error: userdb lookup: connect(/var/run/dovecot/auth-userdb) failed: Permission denied (euid=99(nobody) egid=99(nobody) missing +r perm: /var/run/dovecot/auth-userdb, euid is not dir owner)
Aug 5 10:10:21 localhost dovecot: lda: Fatal: Internal error occurred. Refer to server log for more information.
私はやろうとしました
unix_listener auth-worker {
user = nobody
}
service auth
セクションですが、dovecotは次のメッセージで実行できません:doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf: duplicate listener: /var/run/dovecot/auth-worker
この問題を解決するにはどうすればよいですか?
ありがとう。
Auth-userdbの権限と所有権に関する問題は次のように解決されます。
service auth {
unix_listener auth-userdb {
mode = 0660 # socket access mode
user = nobody # set uid to nobody
group = nobody # set gid to nobody
}
}
Auth-workerの権限と所有権に関する問題ははるかにトリッキーであり、dovecotのソースを読んだ後でしか解決方法を見つけられませんでした。この問題を説明しているページがいくつかあるかもしれませんが、見つかりませんでした。 auth-workerはサービスであり、そのソケット権限は次のように設定されていることがわかりました。
service auth-worker {
unix_listener auth-worker {
user = nobody # same as above, mode and group are supported too
}
}
エラーメッセージによると、/var/run/dovecot/
ディレクトリの所有者が間違っています。それを修正して幸せになりましょう。