
Não consigo encontrar um tutorial completo sobre o Maildir e as pastas onde residem o proprietário e as permissões, se houver e você já o encontrou, compartilhe.
De qualquer forma, gostaria de saber se existe uma maneira de obter saídas de erros relacionadas à configuração do Maildir com Postfix, log Dovecot ou qualquer outra ferramenta, algo como (ei, esta pasta tem um proprietário errado ou há falta de permissões ou mesmo se não for criada)
Eu sei que você vai me dizer: envie-nos sua pasta e configuração, mas gostaria de saber como depurar isso para outros casos futuros.
O que eu realmente gostaria de saber é, por exemplo: Meus usuários virtuais têm /home/user/domain/usermail/Maildir
Quais permissões e proprietário devem ter home, user, domain, usermail e Maildir
Por favor, tenha em mente que o que mais me importa é APRENDER A DEBUGAR problemas relacionados com permissões de pastas.
e eu tenho em dovecot.conf:
verbose_ssl=yes
mail_debug=yes
auth_debug=yes
auth_verbose=yes
e em master.cf postfix conf nestas linhas
smtp inet n - n - - smtpd -v
submission inet n - n - - smtpd -v
A propósito, a permissão drwxr-s--- está ok com a pasta usermail?
Responder1
Para usuários virtuais, você precisa criar uma conta de usuário do sistema e possuir os e-mails e, em seguida, configurar o UID e GID desse usuário no Postfix e no Dovecot.
Aqui estão as partes relevantes do meu dovecot.conf
:
userdb {
driver = static
args = uid=8 gid=12 home=/var/spool/mail/%n
}
mail_location = maildir:~
mail_uid = 8
mail_gid = 12
O userdb é um arquivo semelhante ao passwd realmente simples, com apenas nomes de usuário e senhas e todo o resto é codificado no userdb {...}
bloco real acima, então UID e GID, e a "casa" do usuário está /var/spool/mail
e começa com qualquer login que foi usado (assumindo foi definido previamente no arquivo passwd, caso contrário o acesso será negado).
mail_location
informa que os e-mails estão no formato maildir e localizados em ~
(home), que corresponde ao caminho "home" obtido no userdb acima.
mail_gid/uid
novamente defina a propriedade dos e-mails para o usuário do sistema correspondente que deverá possuir os e-mails; obviamente deveria ser o mesmo no Postfix.
Pós-fixo main.cf
:
virtual_mailbox_base = /var/spool/mail
virtual_mailbox_maps = hash:/etc/postfix/vmailboxes
virtual_uid_maps = static:8
virtual_gid_maps = static:12
O mesmo diretório base do Dovecot, /etc/postfix/vmailboxes
apenas possui a sintaxe <mail user account> <mail directory>/
, por exemplo, se contiver, serverfault serverfault/
informa ao Postfix que qualquer e-mail recebido serverfault@domain
terminaria em /var/spool/mail/serverfault
, que corresponde a onde o Dovecot irá procurá-los quando você fizer login com o serverfault
nome de usuário.
Devemos virtual_uid/gid_maps
novamente definir a propriedade dos e-mails para o usuário do sistema que escolhemos/criamos anteriormente, deve ser o mesmo que Dovecot.
Não conheço nenhuma opção específica de registro necessária para exibir erros. Se eu bagunçar as permissões da pasta de correio virtual, meu Dovecot começa a gritar nos logs sem nenhuma configuração especial (sem opções relacionadas ao registro em meu dovecot.conf) :
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username/) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username) failed: Permission denied
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: opendir(/var/spool/mail/username) failed: Permission denied (euid=8(mail) egid=12(mail) missing +r perm: /var/spool/mail/username)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: opendir(/var/spool/mail/username) failed: Permission denied (euid=8(mail) egid=12(mail) missing +r perm: /var/spool/mail/username)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username/) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username) failed: Permission denied
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/.Sent Messages/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/.Sent Messages/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:10 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/.Sent Messages/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:10 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
O mesmo acontece com o Postfix quando tento enviar um e-mail com as permissões desordenadas:
Mar 07 12:56:45 sanctuary postfix/virtual[2736]: warning: maildir access problem for UID/GID=8/12: create maildir file /var/spool/mail/username/tmp/1425729405.P2736.sanctuary: Permission denied
Mar 07 12:56:45 sanctuary postfix/virtual[2736]: warning: perhaps you need to create the maildirs in advance
Mar 07 12:56:45 sanctuary postfix/virtual[2736]: E752F186: to=<username@sanctuary>, relay=virtual, delay=0.05, delays=0.03/0.01/0/0.01, dsn=4.2.0, status=deferred (maildir delivery failed: create maildir file /var/spool/mail/username/tmp/1425729405.P2736.sanctuary: Permission denied)
Responder2
Presumo que você esteja usando dovecot-lda
para entregar seus e-mails ao Maildir. O IIRC dovecot-lda
mostra informações detalhadas sobre quais permissões estão faltando.
dovecot-lda
não tem acesso ao recurso de registro global do dovecot. Portanto, você deve configurar o log dovecot-lda
separadamente. Portanto você tem que procurar por "protocolo lda {" na configuração do seu dovecot e alterar os parâmetros log_path
e info_log_path
de acordo com sua necessidade. Se você colocar aqui arquivos que devem ser graváveis pelo dovecot-lda e se você quiser usar o syslog (também conhecido como deixar os parâmetros vazios), você terá que modificar a permissão de /dev/log.
O wiki do dovecot tem mais detalhes:http://wiki2.dovecot.org/LDA
BTW: Você não precisa de smtp e envio de log detalhado no postfix se quiser descobrir qual é o problema com a entrega de correio local.