Dovecot - настройка ACL доступа для IMAP (доступ только на чтение)

Версия для печатиОтправить другуPDF version

Dovecot Logo

Довольно часто, при работе с почтой, используется протокол IMAP (Interim Mail Access Protocol). Удобность этого протокола заключается в синхронизации, в отличии от протокола POP3 (Post Office Protocol - Version 3).

Однако, если доступ ящику имеет несколько человек (например менеджеры компании), то могут возникнуть проблемы, как случайные, так и умышленные. Самая частая: удаление сообщений на одном клиенте влечёт за собой синхронное удаление на всех активных клиентах (в том числе и на сервере).

Попытаемся избежать возможных неприятностей, если есть вероятность даной ситуации... Отталкиваемся от того, что в качестве MDA (Mail delivery agent) используем Dovecot. Воспользуемся возможностями плагина ACL (Access Control Lists).

Для подключения плагина необходимо внести изменения в конфигурационный файл dovecot.conf. Изменения касаются следующих пунктов файла конфигурации:

  • protocol imap
  • protocol lda
  • plugin 

Даные пункты необходимо будет отредактировать до следующего состояния (или дополнить, в случае необходимости):

protocol imap {
# список плагинов (сепаратор - пробел)
mail_plugins = acl imap_acl
}

protocol lda {
# список плагинов (сепаратор - пробел)
mail_plugins = acl
}

plugin {
acl = vfile
}

Чтобы изменения вступили в силу, необходимо перезапустить dovecot:

# sh /usr/local/etc/rc.d/dovecot restart

Плагин активирован... Следующий шаг - создание acl для ящика, права которого необходимо изменить. Для этого необходимо в корневом каталоге этого ящика создать файл dovecot-acl. Тоесть, если путь к ящику /var/exim/domain/user, то путь к acl будет /var/exim/domain/user/dovecot-acl.

Синтаксис файла dovecot-acl следующий:

<identifier> <ACLs> [:<named ACLs>]

Тоесть, чтобы разрешить доступ к ящику только на чтение, достаточно создать файл dovecot-acl следующего содержания:

owner lr

Пример многострочного файла dovecot-acl:

owner lrwstipekxa
anyone lr

Чтобы полностью разобраться с даным вопросом, разместим следующую информацию - допустимые значения идентификаторов и допустимые значения флагов.

Таблица идентификаторов

  • group-override=group name
  • user=user name
  • owner
  • group=group name
  • authenticated
  • anyone (или anonymous, что равнозначно anyone)

Таблица флагов

l lookup Ящик виден в списке
r read Ящик может быть открыт на чтение
w write Флаги и ключевые слова сообщения могут быть изменены, за исключением «Просмотрено» и «Удалено»
s

write-seen

Флаг сообщения «Просмотрено» (\Seen) может быть изменён
t write-deleted Флаг сообщения «Удалён» (\Deleted) может быть изменён
i insert Сообщения могут быть записаны или скопированы в ящик
p post Сообщения могут быть размещены через LDA, например через Sieve
e expunge Сообщения могут быть исключены
k create Ящики могут быть созданы или переименованы под управлением этого ящика (переименование требует прав на удаление)
x delete Ящик может быть удалён
a admin Административные права на ящик (изменение списков ACL)

 

Примечание: Кроме файла dovecot-acl, в каталоге может находится кэш-файл dovecot-acl-list, его нужно удалить после внесения изменений в файле dovecot-acl.

 

Проверяем работоспособность правил... Для ящика разрешен доступ только на чтение. При попытке удалить письмо (используя web-интерфейс Roundсube), получаем ошибку:

Roundсube - ошибка &amp;quot;Доступ только на чтение&amp;quot;

Ваша оценка: Нет Средняя: 4.5 (2 голоса)

Re: Dovecot - настройка ACL доступа для IMAP (доступ только ...

Для управления ACL удобно использовать штатную утилиту doveadm:

# doveadm acl
usage: doveadm [-Dv] [-f <formatter>] acl <command> [<args>]
  add          [-u <user>|-A] [-S <socket_path>] <mailbox> <id> <right> [<right> ...]
  debug        [-u <user>|-A] [-S <socket_path>] <mailbox>
  delete       [-u <user>|-A] [-S <socket_path>] <mailbox> <id>
  get          [-u <user>|-A] [-S <socket_path>] [-m] <mailbox>
  recalc       [-u <user>|-A] [-S <socket_path>]
  remove       [-u <user>|-A] [-S <socket_path>] <mailbox> <id> <right> [<right> ...]
  rights       [-u <user>|-A] [-S <socket_path>] <mailbox>
  set          [-u <user>|-A] [-S <socket_path>] <mailbox> <id> <right> [<right> ...]

Для Roundcube есть хороший плагин acl, с помощью которого пользователи могут самостоятельно управлять правами на свои папки через WebUI. Так же в настройках Dovecot не будет лишним задать acl_shared_dict.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература