debian 9 -сито dovecot roundcube

Я использую Ubuntu 18.04.2 LTS, и сценарий JanKanis не работает, как он предлагает. Запуск limitmem 100M scriptограничивает 100 МБ ОЗУ с неограниченным свопом.

Запуск limitmem 100M -s 100M scriptзавершается неудачно, так как cgget -g "memory:$cgname"не имеет параметра с именем memory.memsw.limit_in_bytes.

Поэтому я отключил своп:

# create cgroup
sudo cgcreate -g "memory:$cgname"
sudo cgset -r memory.limit_in_bytes="$limit" "$cgname"
sudo cgset -r memory.swappiness=0 "$cgname"
bytes_limit=`cgget -g "memory:$cgname" | grep memory.limit_in_bytes | cut -d\  -f2`
0
24.01.2021, 04:16
1 ответ

Я хотел написать рассказ о том, как именно я решил свою проблему. Надеюсь, это поможет другим и выложит некоторые новые лакомые кусочки, которые можно использовать в будущем.

Я где-то видел сообщение о ведении журнала отладки, а затем посмотрите syslog.

vim /etc/dovecot/conf.d/10 -logging.conf

#mail_debug = no
mail_debug = yes

хвостовой системный журнал, перезапустите dovecot, затем войдите в roundcube

хвост -f /var/log/syslog

перезапуск сервисной голубятни

~нажмите, укажите, авторизуйтесь на почту~

Я нашел кое-что интересное в системном журнале...

Jan 24 06:40:22 hwsrv-753880 systemd[1]: Started Dovecot IMAP/POP3 email server.
Jan 24 06:41:22 hwsrv-753880 dovecot: imap-login: Login: user=<username@domain.com>, method=PLAIN, rip=2607:5500:3000:1385::2, lip=2607:5500:3000:1385::2, mpid=31064, TLS, session=<+Cv2vKS5xIMmB1UAMAAThQAAAAAAAAAC>
Jan 24 06:41:22 hwsrv-753880 dovecot: imap(username@domain.com): Debug: Effective uid=5000, gid=5000, home=/var/vmail/username@domain.com
Jan 24 06:41:22 hwsrv-753880 dovecot: imap(username@domain.com): Debug: Home dir not found: /var/vmail/username@domain.com

Сообщение о прекрасном домашнем каталоге не найдено. Рядом с ним написано отладка, что указывает на то, что вы не увидите этого, если отладка не включена. Я зашел в /var посмотреть... а /var/vmail/ вообще не существует! Хм...

https://doc.dovecot.org/configuration_manual/mail_location/— это документация dovecot о том, где должна храниться почта. Это также говорит мне:

Автосоздание почтового ящика Dovecot в эпоху 1.x автоматически создавал почтовые ящики независимо от того, было ли установлено местоположение почты _. В версии 2.x автосоздание запускается только в том случае, если местоположение почты _установлено правильно.

Я использую виртуальных пользователей через SQL, и это может кое-что изменить. Я продолжал копаться в документации dovecot и наткнулся на Домашние каталоги для виртуальных пользователей по адресу https://doc.dovecot.org/configuration_manual/home_directories_for_virtual_users/. Вспоминая правильно установленный бит сверху, мне пришлось взглянуть на текущие действующие настройки dovecot и сравнить с документом Каталоги для виртуальных пользователей. страница.

dovecot -n Это показывает, что dovecot на самом деле использует (эффективный )в настройках

В моей текущей конфигурации почта отправлялась в место, не соответствующее документации. Я не был уверен во внутреннем устройстве голубятни, поэтому решил, что должен сделать все как можно ближе к документу. Не зная внутренностей, я, вероятно, выбрал живописный маршрут в некоторых вещах.

mkdir /var/vmail

chown -R 5000 :5000 /var/vmail Я не знаю, какой пользователь переходит на UID и GID 5000, и мне все равно. Это то, что нужно Dovecot (посмотрите на журнал выше, вы это увидите)

grep -rnw '/etc/dovecot' -e 'mail _location' Я не знаю, где в море конфигурационных файлов установлена ​​эта переменная. Я также не знаю, находится ли он в нескольких местах, поэтому я использую этот grep, чтобы найти все файлы в /etc/dovecot, которые содержат строку адреса mail _.

/etc/dovecot/conf.d/10-mail.conf.orig:13:# path given in the mail_location setting.
/etc/dovecot/conf.d/10-mail.conf.orig:24:#   mail_location = maildir:~/Maildir
/etc/dovecot/conf.d/10-mail.conf.orig:25:#   mail_location = mbox:~/mail:INBOX=/var/mail/%u
/etc/dovecot/conf.d/10-mail.conf.orig:26:#   mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
/etc/dovecot/conf.d/10-mail.conf.orig:30:mail_location = mbox:~/mail:INBOX=/var/mail/%u
/etc/dovecot/conf.d/10-mail.conf.orig:56:  # mail_location, which is also the default for it.
/etc/dovecot/conf.d/10-mail.conf:13:# path given in the mail_location setting.
/etc/dovecot/conf.d/10-mail.conf:24:#   mail_location = maildir:~/Maildir
/etc/dovecot/conf.d/10-mail.conf:25:#   mail_location = mbox:~/mail:INBOX=/var/mail/%u
/etc/dovecot/conf.d/10-mail.conf:26:#   mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
/etc/dovecot/conf.d/10-mail.conf:30:# ~this one is working mail_location = maildir:/var/mail/vhosts/%d/%n/
/etc/dovecot/conf.d/10-mail.conf:31:# mail_location = maildir:/var/vmail/%d/%n/mail
/etc/dovecot/conf.d/10-mail.conf:32:mail_location = maildir:/var/vmail/%u/mail
/etc/dovecot/conf.d/10-mail.conf:58:  # mail_location, which is also the default for it.
/etc/dovecot/dovecot-sql.conf.ext:116:#   mail - Mail location (overrides mail_location setting)
/etc/dovecot/dovecot-sql.conf.ext.orig:115:#   mail - Mail location (overrides mail_location setting)

(примечание, если вы знаете, как читать вышеизложенное... пропустите это.
способ прочитать все, что является первой частью, - это имя файла, затем номер строки, а затем фактический текст в этой строке. с этой информацией вы можете запустить vim +24 /etc/dovecot/conf.d/10 -mail.conf, чтобы перейти к тому месту в файле, с которым вам нужно возиться.)

Не помню, где я это прочитал, но где-то у меня в голове засело, что dovecot вообще плохо работает с относительными каталогами, так что я знал, что нужно установить местоположение почты _по точному пути. Читая блок doc -над переменной, я придумал mail _location = maildir :/var/vmail/%u/mail

Я снова перезапустил dovecot, и хвост системного журнала, который у меня все еще работал раньше, теперь высветил что-то о не найденном домашнем каталоге, созданном со стандартными разрешениями. Сразу после этого создается домашний каталог, бла-бла. После этого волшебного проявления многословия я увидел нечто чудесное в копировании правил sieve в домашний каталог. Я зашел в roundcube, и все заработало! Я снова отключил dubug, снова запустил dovecot, почувствовал гордость и позволил своему эго немного раздуться.

Наконец, сито действительно было настроено правильно. Roundcube был настроен правильно. Dovecot работал, и я точно следовал инструкции. В конце концов я разобрал документацию, потратил около часа на расследование и обнаружил, что проблема связана с путем к файловой системе.

Доказательство -положительного того, что как бы строго вы ни следовали руководству, документация по-прежнему превыше всего. Я чувствую, что многие люди настолько привыкли к мгновенному удовлетворению, что забыли правило номер 1 любой *системы UNIX... RTFM

0
18.03.2021, 22:35

Теги

Похожие вопросы