Назад | Перейти на главную страницу

Courier IMAP: почтовые ящики только для чтения?

можно ли сделать определенные почтовые ящики (Maildir) доступными только для чтения? чтобы пользователи могли только читать, пересылать и искать письма, но не удалять их?

заранее спасибо

Вы можете легко сделать это с помощью ACLs, в частности, с помощью команды maildiracl .

Нетривиально определить, какой ACL нужно поместить, и нетривиально выяснить, в каких папках вам нужно изменить ACL. Отсутствие правильных списков ACL покажет нежелательное поведение в некоторых почтовых клиентах, таких как roundcube, например, вы можете удалить сообщение, сообщение кажется исчезнувшим, но если вы перейдете в другую папку (скажем, «Отправлено») и вернетесь в папку «Входящие», то сообщение появляется снова. Таким образом, почтовый ящик по-прежнему доступен только для чтения, но мы не хотим, чтобы эта путаница исчезла / снова появилась.

В конце концов я решил, что правильно:

  1. Установите ACL lrasiw во INBOX
  2. Установите ACL lrasiw в папке "Отправленные"
  3. Установите ACL lra в папку Trash

Я записал это в скрипт, он может вам пригодиться:

root@messagerie[CHROOT][10.10.10.19] ~/SCRIPTS/MAIL # cat readonly.single
if [ "$#" -ne 1 ]
then
    echo "usage : $0 boite@domain.com"
    exit 1
fi

email="$1"
inbox="${1%@*}"
dst="/var/vmail/domain/$inbox"

set -x
maildiracl -set "$dst" "INBOX" owner lrasiw
maildiracl -set "$dst" "INBOX.Sent" owner lrasiw
maildiracl -set "$dst" "INBOX.Trash" owner lra
root@messagerie[CHROOT][10.10.10.19] ~/SCRIPTS/MAIL # cat fullaccess.single
if [ "$#" -ne 1 ]
then
    echo "usage : $0 boite@domain.com"
    exit 1
fi

email="$1"
inbox="${1%@*}"
dst="/var/vmail/domain/$inbox"

set -x
maildiracl -set "$dst" "INBOX" owner aceilrstwx
maildiracl -set "$dst" "INBOX.Sent" owner aceilrstwx
maildiracl -set "$dst" "INBOX.Trash" owner aceilrstwx
root@messagerie[CHROOT][10.10.10.19] ~/SCRIPTS/MAIL #