Запрет на удаление писем в папках почтового сервера
09 Nov 2019 | Автор: dd |В одном из заказов потребовалось сделать запрет пользователями на удаление писем из папок почтового сервера.
Причем там была история про то, что людям был необходим чисто почтарь, т.ч я по глупости поставил iRedMail у которого в бесплатном варианте оказался дико кастрированный функционал, которого не хватало даже для настройки алиасов, не говоря про форварды, т.ч пришлось дополнительно прикручивать к нему еще и postfixadmin.
Точнее даже так, тот функционал, ради которого я ставил iRedMail недоступен в бесплатной версии, т.ч все надо делать руками, поэтому все фичи, вроде лимитов Throttle или политик Greylist, имеет смысл вообще отключить.
Так что моя любимая Vesta CP имеет гораздо более удобный функционал управления сервером, как в плане менеджмента пользователей, так и в плане доступа к конфигам.
К тому же с вестой в комплекте идет Exim, а не Postfix.
Но в любом случае с обоими системами идет pop3/imap сервер Dovecot, чьими силами и настраиваются лимиты.
Для этого нам придется прибегнуть к Dovecot ACL, позволяющие задавать широкие правда к папкам, от листинга до администрирования.
Для этого мы берем Dovecot конфиг /etc/dovecot/dovecot.conf и ищем в нем раздел плагинов, начинающийся с
plugin {
# Quota configuration.
в нем уже находим секцию ACL, которые по умолчанию отключены
# ACL and share folder
acl = vfile
acl_shared_dict = proxy::acl
куда добавляем путь до глобального каталога, приводя к виду
# ACL and share folder
acl = vfile:/etc/dovecot/global-acls/
acl_shared_dict = proxy::acl
В случае Vesta CP это будет файл /etc/dovecot/conf.d/90-acl.conf или же просто в самой панельке вкладка Server -> dovecot -> Configure -> /etc/dovecot/conf.d/90-acl.conf (его может не быть, тогда надо будет создать лапками)
Закрываем конфиг и создаем папку /etc/dovecot/global-acls/
# mkdir /etc/dovecot/global-acls/
и создаем в ней папки, для которых необходимо ограничить доступ пользователя. В моем случае это были INBOX и Sent, в которые мы списываем для владельца все права, кроме флага x – удаления
# echo ‘owner lrwsipka’ > /etc/dovecot/global-acls/INBOX
# echo ‘owner lrwsipka’ > /etc/dovecot/global-acls/Sent
После чего рестартим довекот
# service dovecot restart
и можем проверять права доступа в RoundCube, который при попытке удалить сообщения, будет выкидывать такой страшилку, приводящую пользователя в страх и трепет.
Тут надо заметить, что эти права распространяются только на IMAP, т.ч по POP3 сообщения можно будет все равно снести, поэтому его лучше всего отрубить как класс, убрав из первых строк конфига
# Enabled mail protocols.
protocols = pop3 imap sieve lmtp
Если же права надо задать для каких то конкретных пользователей, то делается это с помощью записи о пользователе с правами, например
user=vasisualiy lrws
которого добиваем либо в файл папки глобала, либо добавлением в:
глобальных ACL папок: /etc/dovecot/acls/INBOX
записи user=vasisualiy lrws
или
персонального ACL юзверя Domain/User-Name/Maildir/dovecot-acl-list
записи INBOX owner lrws
Теги: dovecot