Вход:  Пароль:  
FreeSource: Статьи/SharedFolders ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия Статьи/SharedFolders за 2005-09-21 18:56:48..

Background

Встала у меня задача организовать в конторе shared folders. Точнее я её себе сам поставил, для решения двух других :) Это:


Так как у меня стоял courier-imap, то конечно заводил это дело я на нём. И на одном из срезов AltLinux Sysiphus

Натройка

Первым делом я конечно начал с чтения подходящей документации: /usr/share/doc/courier-imap-4.0.3/README.sharedfolders.txt. Прочитал, проникся.

Какой механизм поиска shared folders?

Как я понял, их два общесистемных: Virtual shared folders и Filesystem permissions-based shared folders. Когда-то я реализовывал Filesystem permissions-based shared folders, так как это оказалось наиболее просто: они организовываются в ящиках пользователей.
И вот здесь я так и не понял существующую alt linux документацию: механизм поиска Virtual shared folders по документу /usr/share/doc/courier-imap-4.0.3/README.sharedfolders.txt:


Оказывается, courier под altlinux глубоко наплевал на эти пути и названия, и только через strace я выяснил, что ему нужен файл /etc/courier-imap/maildirshared, раз, два больше ничего похожего на share folder либо index он не и не пытается искать. Более того, этот файл имеет немного другой формат вида
<foldername> <folderpath>
где foldername – имя подкаталога shared (находится на одном уровне с INBOX. как и INBOX – один их корневых катлогов IMAPv4), а folderpath – путь, где находятся сами shared folders, то есть если там будет только cur-new-tmp, то никаких shared фолдеров вы не увидете. folderpath должен быть в maildir формате, то есть создаваться командой maildirmake.

Непоредственная настройка

Поэтому для создания shared folder вида shared.spam.blacklistнам надо (shared.folder не получится – courier такого не позволяет):

  1. создавть /var/spool/mail/shared/ или где там у вас будет это валяться:
  2. создать /etc/courier-imap/maildirshared и вписать в него
  3. важно создать maildir подкаталог нашего фолдереа:
  4. проследить за правами – пользователь, от которого работает courier должен иметь права туда писать, а courier всегда делает смену uid/gid на залогиневшегося пользователя, каким виртуальным он не был.

В принципе всё.

Диагностика

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

  1. То есть, ищем процесс imapd, работающий от вашего пользователя, и смотрим его pid. Этот процесс появляется только, если вы уже проверяете почту. Если же нет, то его не будет. По крайнере мере с вашим пользователем. Если это так, тогда ищем pid процесса courier-imapd.
  2. натравливаем на полученный pid strace (натравливать от root'а):
    Здесь -p – подключится к pid'у, -f – следовать за fork'нувшимися процессами, что нам нужно, если imapd не был запущен, зато был courier-imapd – последний запустит imapd, который и будет искать shared folders. А без -f strace этот fork не будет проверять.
  3. Читаем. Или ищем строчки с /var/spool/mail/shared/ и его подкаталогами и смотрим, что нам выдала функция open.

 
Файлов нет. [Показать файлы/форму]
Один комментарий. [Показать комментарии/форму]