У меня есть рабочий сервер courier-imap на моем частном сервере Debian Etch; пользователи виртуальные, аутентификация проходит через mysql. Он хорошо работает годами.
Я хотел бы поделиться папкой imap между двумя пользователями.
Я думал, мне просто нужно сделать что-то вроде этого:
cd path/to/mailusers/dir ln -s path/to/user1/maildir/.folder_to_be_synched path/to/user2/maildir/
После того, как я ввел команду, я обнаружил, что user2 увидел новую папку в своем imap-клиенте, но папка оказалась пустой.
Это не проблема с разрешениями, потому что все виртуальные пользователи имеют одинаковые разрешения в файловой системе.
Есть идеи, что я мог сделать?
Спасибо
Возможно, вам потребуется настроить списки управления доступом IMAP с помощью команды maildiracl. Поскольку вы используете виртуальную установку, Courier обеспечивает контроль доступа именно так. Эти ACL хранятся в файле courierimapacl, а синтаксис описан на странице руководства maildiracl. Например, вы можете использовать этот синтаксис, чтобы предоставить другому пользователю доступ для чтения к папке:
maildiracl -set / somedirectorypath / user / Maildir / INBOX user = otheruser lr
Вот что у меня сработало:
1. создайте индексный файл в /etc/courier/shared.tmp/index
2. вызовите sharedindexinstall без каких-либо аргументов, это сгенерирует / etc / courier / shared / index из /etc/courier/shared.tmp/index, который вы создали ранее.
3. предоставить необходимые права и разрешения на желаемую папку (или почтовый ящик) желаемому пользователю (или пользователям)
4. Если вы используете roundcube в качестве веб-почты, не забудьте добавить это в свой файл конфигурации (обычно это /var/www/whereroundcubeis/config/config.inc.php)
$config['imap_force_ns'] = true;
В документации Courier указано, что последним полем должен быть путь maildir относительно домашнего поля (предпоследнее). Итак, правильный формат должен был быть:
root@messagerie-secours[10.10.10.20] ~ # cat /etc/courier/shared/index
ali.mellah@xxx 5000 5000 /var/vmail/xxx/ ali.mellah
a.chaouche@xxx 5000 5000 /var/vmail/xxx/ a.chaouche
root@messagerie-secours[10.10.10.20] ~ #
Формат:
userid \t uid \t gid \t homedir \t maildir
userid : this should be the same id you find in the syslog or mail.log (/var/log/mail.log) in the IMAP login messages.
uid/gid : this should be the uid and gid of the system user. If you are in a virtual setup, all the IMAP users should have the same system username (vmail in my case) thus having the same uid and gid (vmail in my case has uid 5000 and gid 5000)
homeidr : this is the home directory of the user. In my case, they all share the same homedir, only the maildirs are different.
maildir : this should be a relative path to homedir, not a full path. If you do a full path courier will fail and log a line in /var/log/mail.err or /var/log/mail.warn
Поля разделены табуляцией.
maildiracl -set /var/vmail/xxx/a.chaouche/ "INBOX.PRTG" user=ali.mellah@xxx lr
Предоставление ali.mellah@xxx права просматривать и просматривать содержимое папки INBOX.PRTG внутри почтового ящика a.chaouche@xxx.
Вы можете увидеть права всех пользователей папки или почтового ящика с помощью maildiracl -list, например:
root@messagerie-secours[10.10.10.20] ~ # maildiracl -list /var/vmail/algerian-radio.dz/a.chaouche/ "INBOX.PRTG"
owner aceilrstwx
administrators aceilrstwx
ali.mellah@algerian-radio.dz lr
user=ali.mellah@algerian-radio.dz lr
root@messagerie-secours[10.10.10.20] ~ #
Вы можете увидеть права конкретного пользователя в папке с maildiracl -compute, например:
root@messagerie-secours[10.10.10.20] /home/serveur # maildiracl -compute /var/vmail/algerian-radio.dz/a.chaouche/ "INBOX.Flux audio" user=ali.mellah@algerian-radio.dz
lrs
root@messagerie-secours[10.10.10.20] /home/serveur #