Depois de atualizar o Ubuntu de 20.04 para 22.04, estou tendo problemas ao iniciar o dovecot e estou recebendo o seguinte erro:
$ sudo dovecot -F
doveconf: Fatal: execvp(/usr/sbin/dovecot) failed: Argument list too long
Depois de algumas pesquisas descobri que tem que aumentar a ARG_MAX
variável, mas não sei como.
Eu tentei encontrar soluções em ulimit
, sysconf
e exec
.
$ sudo getconf ARG_MAX
2097152
$ getconf ARG_MAX
6291456
Eu adicionei o seguinte a /etc/secutiry/limits.conf
:
root soft nofile 65535
root hard nofile 65535
LimitNOFILE=65536
mas dovecot.service
continua dando o mesmo erro!
$ sudo doveconf -n
auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = PLAIN
auth_verbose = yes
disable_plaintext_auth = no
log_path = /var/log/dovecot.log
mail_home = /home/vmail/%d/%u
mail_location = maildir:~
passdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
protocols = imap pop3
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
user = root
}
ssl = required
ssl_ca = </etc/ssl/certs/ca-certificates.crt
ssl_cert = </etc/letsencrypt/live/*.nl/fullchain.pem
ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_prefer_server_ciphers = yes
userdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
local_name mail.*.nl {
protocol imap {
ssl_ca = </etc/ssl/certs/ca-certificates.crt
ssl_cert = </etc/letsencrypt/live/*.nl/fullchain.pem
ssl_key = # hidden, use -P to show it
}
}
local_name mail.*.nl {
protocol pop3 {
ssl_ca = </etc/ssl/certs/ca-certificates.crt
ssl_cert = </etc/letsencrypt/live/*.nl/fullchain.pem
ssl_key = # hidden, use -P to show it
}
}
Código de saída: 89
E se o limite razoável for eficaz .. mas você está realmente passando algo inapropriadamente grande em um local inesperado?
Posso ver um candidato em potencial: não acho que seja isso que você pretendia configurar:
Isso é para verificação de certificados de cliente enviados a você. Se você usasse isso, ainda não conteria um número substancial de certificados.
Se você quiser substituir o que é usado para verificar apenas certificados ao se conectar em uma função de cliente, use
ssl_client_ca_dir
, mas isso já deve ter padrões sensatos, portanto, não é necessário.