Postfixadmin Exim Cyrus-imapd

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-11-19 20:13:53

Здравствуйте!
У меня следующая проблема при удалении почтового ящика из Posfixadmin удаляется только запись в базе exim(mysql), а реальные папки удаленного пользователя остаются /var/spool/imap/user/пользователь

Если удалить папку в ручную то будет противоречивость в базе /var/lib/imap и если создать снова пользователя с таким именем то у вновь созданного пользователя такие папки не создадутся будет ошибка.

Я тут обнаружил кое какие скрипты /Postfixadmin/ADDITIONS/cyrus/
cyrus-mailbox-postcreation.pl
cyrus-mailbox-postdelete.pl
cyrus-mailbox-postedit.pl

но куда их подключить не знаю?
Пробовал удалять старые папки с помощью cyradm но так как пользователи хранятся в Mysql то можно зайти только реальным пользователем который видит только свои папки а чужие mailbox нет.
Во общем нужна помощь - я уже свою голову сломал. Мне надо чтобы корректно при удалении пользователя удалялись и папки imap пользователя.
Мои конфиги:
/etc/cyrus.conf

Код: Выделить всё

START {
  # do not delete this entry!
  recover       cmd="ctl_cyrusdb -r"
  idled         cmd="idled"
}
SERVICES {
  imap          cmd="imapd" listen="imap" prefork=5
  #imaps        cmd="imapd -s" listen="imaps" prefork=1
  pop3          cmd="pop3d" listen="pop3" prefork=3
  #pop3s        cmd="pop3d -s" listen="pop3s" prefork=1
  #sieve        cmd="timsieved" listen="sieve" prefork=0
  #nntp         cmd="nntpd" listen="nntp" prefork=3
  #nntps        cmd="nntpd -s" listen="nntps" prefork=1
  #lmtp         cmd="lmtpd" listen="lmtp" prefork=0
  lmtpunix      cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
}

EVENTS {
  checkpoint    cmd="ctl_cyrusdb -c" period=30
  delprune      cmd="cyr_expire -E 3" at=0400
  tlsprune      cmd="tls_prune" at=0400
}
/etc/imapd.conf

Код: Выделить всё

autocreatequota:        10485760
createonpost:           yes

configdirectory: /var/lib/imap
partition-default: /var/spool/imap

admins:                 cyrus
allowplaintext:         yes
virtdomains:            userid
defaultdomain:          *******
allowanonymouslogin:    no
sasl_password_format:   plaintext
sasl_sql_verbose:       yes
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: sql
sasl_mech_list: LOGIN PLAIN
sasl_sql_engine: mysql
sasl_sql_user: exim
sasl_sql_passwd: ******
sasl_sql_database: exim
sasl_sql_hostnames: localhost
sasl_sql_select: SELECT password FROM mailbox WHERE local_part = '%u' and active=1 limit 1
/Postfixadmin/config.inc.php - так в принципе по умолчанию но изменил несколько строк

Код: Выделить всё

$CONF['configured'] = true;
$CONF['setup_password'] = '***';
$CONF['postfix_admin_url'] = '';
$CONF['postfix_admin_path'] = dirname(__FILE__);
$CONF['default_language'] = 'en';

// Database Config
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'exim';
$CONF['database_password'] = '******';
$CONF['database_name'] = 'exim';

ВОТ ИНТЕРЕСНЫЕ СТРОКИ НО КУДА ПОДСТАВИТЬ СКРИПТЫ НЕ ЗНАЮ
// Optional:
// $CONF['mailbox_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
// Optional:
// $CONF['mailbox_postedit_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postedit.sh';
// Optional:
// $CONF['mailbox_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение ASY » 2011-11-20 0:00:59

А не хотите зайти с другой стороны ? Мысль такая. Есть cyrus-imap, и только он важен, так как там база пользователей, он "знает" про объём, переполнение ящиков и т.п. А MTA не надо знать про пользователей, MTA просто должен спросить у Cyrus-IMAP. Я использую в таком варианте Sendmail, но там, где я, когда-то, нашёл информацию про удобную связку Cyrus-IMAP с Sendmail, было описание аналогичной методики для Exim.
http://anfi.homeunix.org/exim/rtvcyrus.html
Правда, смотрю, там ссылка уже есть на http://wiki.exim.org/CyrusImap
Соответственно, дальше надо будет просто переключиться на проблему работы с базой пользователей Cyrus-IMAP.

djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-11-20 4:45:25

Тут как бы больше проблема не MTA, а Postfixadmin c Curus.
Мне лично не нравятся что создается несколько своих баз - вот если бы cyrus и postfixadmin имели общую базу на мускуле то проблем бы во обще не было все бы знали про все и пути и квоты и т. п.

И переrлючиться для работы с базой Cyrus я не могу так как уже говорил что для подключения к тулсе cyradm -u блабла localhost нужен пользователь с правами локального админа на все mailbox всех
но как я такого заведу если он лезет в мускул за реальными пользователями и пускает только их.

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение ASY » 2011-11-20 17:12:52

djakson писал(а):Тут как бы больше проблема не MTA, а Postfixadmin c Curus.
Мне лично не нравятся что создается несколько своих баз - вот если бы cyrus и postfixadmin имели общую базу на мускуле то проблем бы во обще не было все бы знали про все и пути и квоты и т. п.
Так это и есть решение данной проблемы. Администрировать надо только базу Cyrus, MTA о наличии и доступности ящиков узнаёт от Cyrus-IMAP.
djakson писал(а): для подключения к тулсе cyradm -u блабла localhost нужен пользователь с правами локального админа на все mailbox всех
но как я такого заведу если он лезет в мускул за реальными пользователями и пускает только их.
А вот тут, на самом деле, я не очень понял. Пользователи в MySQL у Cyrus-IMAP не хранятся, по крайней мере, по-умолчанию. Может и есть какое расширение, но я не встречал (хотя и не искал). У него своя база. А вот пароли да, могут быть и в MySQL и быть использованы, например, через sasl-mysql. Удаление пользователя из базы MySQL, в данном случае, не означает удаление ящика и удаление ящика не означает автоматическую чистку базы - эти сущности сами по себе. Что касается суперпользователя, для которого дуступно заведение и удаление ящиков через, к примеру, cyradm, я не знаю, почему его может быть нельзя завести в базе mysql, которая используется через cyrus-sasl. В ощем, я что хочу сказать - у меня же работает. :-)
Правда есть проблема - у меня не было проблем с этим механизмом заведения пользователей и управления ящиками, возможно, я просто прошёл мимо каких-то грабель. Но, значит, я прошёл мимо не один раз...
И повторяю, MTA не надо знать про пользователей, его дело спросить у Cyrus-IMAP, можно ли доставлять в этот ящик. Получается красиво и логично.

djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-11-20 17:45:00

ASY писал(а): А вот пароли да, могут быть и в MySQL и быть использованы, например, через sasl-mysql. Удаление пользователя из базы MySQL, в данном случае, не означает удаление ящика и удаление ящика не означает автоматическую чистку базы - эти сущности сами по себе. Что касается суперпользователя, для которого дуступно заведение и удаление ящиков через, к примеру, cyradm, я не знаю, почему его может быть нельзя завести в базе mysql, которая используется через cyrus-sasl. В ощем, я что хочу сказать - у меня же работает. :-)
Ну да имел ввиду хранение паролей в мускуле. Как я не пробовал создавать это пользователя нифига :( . Сегодня попробовал воткнуть пользователя ручками в мускул без создания папок = но результат: в меню cyradm> пускает далее никаких операций с этой учеткой сделать не могу пишет что не существует mailbox для этого пользователя.
ASY писал(а): Правда есть проблема - у меня не было проблем с этим механизмом заведения пользователей и управления ящиками, возможно, я просто прошёл мимо каких-то грабель. Но, значит, я прошёл мимо не один раз...
И повторяю, MTA не надо знать про пользователей, его дело спросить у Cyrus-IMAP, можно ли доставлять в этот ящик. Получается красиво и логично.
Ну поделись тогда печеньками.

И опять же заострю внимание на скрипты что идут в postfixadmin: cyrus-mailbox-postcreation.pl, cyrus-mailbox-postdelete.pl, cyrus-mailbox-postedit.pl - что такое никто не юзает?

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение ASY » 2011-11-20 23:47:15

djakson писал(а):Ну поделись тогда печеньками.
Глобально печенька по ссылам у Andrzej Adam Filip (то, что я выше дал). Это что касается настройки MTA
djakson писал(а):Пробовал удалять старые папки с помощью cyradm
А вот почему это не работает, надо попробовать разобраться. Обязано работать.
djakson писал(а):И опять же заострю внимание на скрипты что идут в postfixadmin: cyrus-mailbox-postcreation.pl, cyrus-mailbox-postdelete.pl, cyrus-mailbox-postedit.pl - что такое никто не юзает?
Этими скриптами я не пользовался, у меня свои (то есть, не я писал, но у нас в организации). Работают через Cyrus::IMAP::Admin (perl-Cyrus), вышеперечисленные, наверняка, работают через эту же библиотеку. Через неё же, кстати, работает и cyradm. Так что всё сводится к проблеме правильного заведения пользователя - глобального постмастера. Как cyradm заработает, так всё должно начать работать.
Для начала, интересно вот это: grep "admins\|defaultdomain\|virtdomains" imapd.conf
И, кстати, а сейчас ящики как заводятся ? Или это кто-то когда-то сделал ?

djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-11-21 8:04:29

Пользователей(ящики автоматом с ними же)завожу через Postfixadmin в конфигах ничего особо не менял(я их приводил ниже). Заводит их сам cyrus после авторизации в мускуле.
Суперадмин cyrus тут никак не задействован - я имею ввиду в процессе создания пользователя и ящика через Postfixadmin.

Вчера вечером нашел и исправил причину "неактивности" не возможности захода суперадмином в тулсу cyradm - причина как бы была на поверхности:
дело в том когда работает авторизация через мускул то когда коннектишься к cyradm он как положено сравнивает пароли с мускулом вот эта строка:
imapd.conf

Код: Выделить всё

sasl_pwcheck_method: auxprop
Еслм ее поменять на sasl_pwcheck_method: saslauthd - то суперпользователь заходит а вот остальные у которых учетки в мускуле нет.
Поискал я тут как можно скрестить два типа авторизации и нашел (вычитал на бурж.сайте форуме)
imapd.conf

Код: Выделить всё

sasl_pwcheck_method: saslauthd auxprop
А вот так все прекрасно работает и волки сыты и овцы целы.
Теперь я снова открываю файлик конфига для скриптов /Postfixadmin/ADDITIONS/cyrus/cyrus.conf и вписываю нормальные учетки суперадмина.

Код: Выделить всё

#!/usr/bin/perl
# Config
$cyrus_user =           'cyrus';
$cyrus_password =       'cyrus';
$cyrus_host =           'localhost';

# unixhierarchysep => 1 (yes) / 0 (no)
$unixhierarchysep =     1;
# Common routines
sub mailbox_name {
        my $mailbox = shift;
        if($unixhierarchysep) {
                $mailbox = 'user/'.$ARGV[0];
        } else {
                $mailbox = 'user.'.$ARGV[0];
        }
        return $mailbox;
}
sub die_on_error {
        my $cyradm = shift;
        if($cyradm->error) { die $cyradm->error; }
}
1;
Но вопрос остается с силе куда разместить этот файл и другие файлы скриптов и где на них ссылаться?
Мое подозрение что где то в файле конфига Postfixadmin.

djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-11-21 8:12:59

Кстати вот содержимое этих скриптов:
cyrus-mailbox-postcreation

Код: Выделить всё

#!/usr/bin/perl 

# Cyrus Mailbox creation
#
# I?aki Rodriguez (irodriguez@virtualminds.es / irodriguez@ackstorm.es)
# 
#  LICENSE
#  This source file is subject to the GPL license that is bundled with
#  this package in the file LICENSE.TXT.
#
# (26/10/2009) 

use Cyrus::IMAP::Admin;
require '/etc/mail/postfixadmin/cyrus.conf';
use strict;
use vars qw($cyrus_user $cyrus_password $cyrus_host);

my %opts;

my $mailbox = mailbox_name($ARGV[0]);

my $client = Cyrus::IMAP::Admin->new($cyrus_host);
die_on_error($client);

$opts{-user} = $cyrus_user;
$opts{-password} = $cyrus_password;

$client->authenticate(%opts);
die_on_error($client);

$client->create($mailbox);
die_on_error($client);

$client->setquota($mailbox,'STORAGE',scalar $ARGV[3]) if ($ARGV[3] > 0);
die_on_error($client);
cyrus-mailbox-postdelete

Код: Выделить всё

#!/usr/bin/perl 

# Cyrus Mailbox deletion
#
# I?aki Rodriguez (irodriguez@virtualminds.es / irodriguez@ackstorm.es)
# 
#  LICENSE
#  This source file is subject to the GPL license that is bundled with
#  this package in the file LICENSE.TXT.
#
# (26/10/2009) 

use Cyrus::IMAP::Admin;
require '/etc/mail/postfixadmin/cyrus.conf';
use strict;
use vars qw($cyrus_user $cyrus_password $cyrus_host);

my %opts;

my $mailbox = mailbox_name($ARGV[0]);

my $client = Cyrus::IMAP::Admin->new($cyrus_host);
die_on_error($client);

$opts{-user} = $cyrus_user;
$opts{-password} = $cyrus_password;

$client->authenticate(%opts);
die_on_error($client);

$client->setacl($mailbox,$cyrus_user => 'all');
die_on_error($client);

$client->deletemailbox($mailbox);
die_on_error($client);

cyrus-mailbox-postedit

Код: Выделить всё

#!/usr/bin/perl 

# Cyrus Mailbox edition
#
# I?aki Rodriguez (irodriguez@virtualminds.es / irodriguez@ackstorm.es)
#
#  LICENSE
#  This source file is subject to the GPL license that is bundled with
#  this package in the file LICENSE.TXT.
#
# (26/10/2009)

use Cyrus::IMAP::Admin;
require '/etc/mail/postfixadmin/cyrus.conf';
use strict;
use vars qw($cyrus_user $cyrus_password $cyrus_host);

my %opts;

my $mailbox = mailbox_name($ARGV[0]);

my $client = Cyrus::IMAP::Admin->new($cyrus_host);
die_on_error($client);

$opts{-user} = $cyrus_user;
$opts{-password} = $cyrus_password;

$client->authenticate(%opts);
die_on_error($client);

$client->setquota($mailbox,'STORAGE',scalar $ARGV[3]) if ($ARGV[3] > 0);
die_on_error($client);

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение ASY » 2011-11-21 17:59:54

djakson писал(а):Поискал я тут как можно скрестить два типа авторизации
Вообще-то, MySQL-ем оканчиваться может любой вариант. Приходилось видеть вариант цепочки, где был pam-radius, и уже только radius-сервер лазил в базу.
djakson писал(а):Но вопрос остается с силе куда разместить этот файл и другие файлы скриптов и где на них ссылаться?
Мое подозрение что где то в файле конфига Postfixadmin.
Ну так в приведённых файлах явно написано: require '/etc/mail/postfixadmin/cyrus.conf';
И, кстати, там уже должен бы быть указан нужный пользователь. Иначе бы не работало.

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение ASY » 2011-11-22 10:39:00

И, кстати, там уже должен бы быть указан нужный пользователь.
Забыл ещё уточнить. Когда включены виртуальные домены, авторизоваться надо с доменом вместе.

djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-11-22 11:02:12

Точно не знаю(не пробовал) но наверное да, а как серв должен знать к какому домену относится твоя учетка.

Я еще косак офигенный обнаружил: если юзер создаст папки imap на кирилице то если при удалении учетки и потом нужно подчистить оставшиеся папки будет косяк System error I/O.
Лечится через Ж заходим в почтовый клиент переименовываем папки, потом в cyradm reconstruct -r <папочка> далее sam <папочка> cyrus all и на конец dm <папочка>

Может кто знает как не через Ж приручить нормально cyrus работать с кирилицей?

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение ASY » 2011-11-22 13:26:51

djakson писал(а):а как серв должен знать к какому домену относится твоя учетка.
Либо авторизоваться надо с E-Mail в качестве логина, либо у сервера должно быть несколько IP с именами, соответствующими доменам.
djakson писал(а):Я еще косак офигенный обнаружил: если юзер создаст папки imap на кирилице то если при удалении учетки и потом нужно подчистить оставшиеся папки будет косяк System error I/O.
Вообще, имя папки кодируется в семибитное, не должно проблем быть. Возможно, это особенности сборки какие-то, либо конфига, хотя в конфиге я опцию помню только про преобразование точки в ^.

djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-11-22 17:38:56

У меня вот такие версии

Код: Выделить всё

cyrus-imapd-2.3.7-2.el5
cyrus-sasl-plain-2.1.22-4
cyrus-sasl-lib-2.1.22-4
cyrus-sasl-2.1.22-4
cyrus-sasl-devel-2.1.22-4
cyrus-sasl-sql-2.1.22-4
cyrus-imapd-utils-2.3.7-2.el5
cyrus-imapd-perl-2.3.7-2.el5

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение ASY » 2011-11-25 16:22:15

Дошли руки проверить. И создаётся всё, и удаляется. Проверял с cyrus-imapd 2.4.12-alt0.M60P.1 и с самосборным древним, из ветки 2.1 ещё (стоит на RH 7.2). Да и не первый год разные Cyrus-IMAP использую. Нигде такого не замечал.

djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-11-25 19:20:10

Сорри за флуд, проверил на только что созданном тесте - все действительно работает видимо косяк от предыдущего админа.
Но разъясни куда мне подвязать вышеупомянутые сркипты где прописать. Про конфиг итак понятно что где и куда.
Я тут кину мож кому пригодитцо типа мой ман по настройке может я в дальнейшем создам статью с нуля и выложу VM только домен и ИП поменять и будет у вех счастье.
Типа ман:
  • #Посмотреть какой пользователь прописан админом в imapd.conf
    grep admins /etc/imapd.conf #admins: cyrus
    #Создание пользователя cyrus для cyradm
    passwd cyrus # поменять пароль пользователю
    sasldblistusers2 # посмотреть какие пользователи заведены
    /usr/sbin/saslpasswd2 -c cyrus #добавить пользователя cyrus
    # если что можно удалить пользователей saslpasswd2 -d a.testuser # команда удалит пользователя a.testuser в базе sasldb2
    /usr/sbin/testsaslauthd -u cyrus -p cyrus # Проверить что пользователь авторизуется
    # назначить права на папки почты
    chown -R cyrus:mail /var/lib/imap
    chown -R cyrus:mail /var/spool/imap
    # рестартануть сервис
    service cyrus-imapd restart
    # попробовать зайти в тулсу пользователем
    cyradm --user cyrus localhost

    lm #просмотр всех папок пользователя

    Администрировать ящики необходимо уже известной Вам программой cyradm.
    $ cyradm --user cyrus localhost
    localhost> sam user.boss@example.org cyrus all
    localhost> dm user.boss@example.org
    localhost> quit


    Если при проверке testsaslauthd -u cyrus -p cyrus вам выдает connect() : No such file or directory
    То скорее всего не запущен демон авторизации saslauthd его можно проверить так
    ps aux | grep auth
    Если запущен то увидим следующее
    root 2686 0.0 0.0 47728 524 ? Ss Nov18 0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -r -n 0 -c

    Если нет то лезем в конфиг и правим
    /etc/sysconfig/saslauthd
    SOCKETDIR=/var/run/saslauthd
    MECH=pam
    FLAGS="-r -n 0 -c"

    Включим сервис
    chkconfig --level 234 saslauthd on
    service saslauthd restart


    Воостановление неправильно удаленного почтового ящика
    reconstruct -r user.<ящик>

    #Типа команды cyradm
    createmailbox, cm create a mailbox
    deleteaclmailbox, dam delete an ACL on a mailbox
    deletemailbox, dm delete a mailbox
    help get help on commands
    listaclmailbox, lam list the ACL on a mailbox
    listmailbox, lm list mailboxes
    listquota, lq list quota on root
    listquotaroot, lqr, lqm list quota roots on mailbox
    quit exit program
    renamemailbox, renm rename a mailbox
    setaclmailbox, sam set an ACL on a mailbox
    setquota, sq set quota limits

djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-11-25 19:33:35

И еще совсем забыл если пользователи авторизируются на мускуле и тебе нужно включить заход по saslauth то в конфиге первым по авторизации должен стоять

Код: Выделить всё

sasl_pwcheck_method: auxprop saslauthd 
Сделать наоборот то в логах будет фиксироваться ошибка авторизации так как сначала сетевые пользователи будут лезть в saslauth потом в мускул
А если написать как выше то основная масса народу будет идти вначале на мускул.
Ну вы же не каждые полчаса лезете в cyradm с авторизацией в saslauth.

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение ASY » 2011-11-25 23:17:39

Вообще, это всё зависит от конфигурации. "passwd cyrus" может быть при чём, если авторизация завязана на системных пользователей. Чаще это не так. saslpasswd2/sasldblistusers2 нужны в том случае, если cyrus-imap использует sasldb для авторизации. В случае, если для хранения пользователей используется SQL-СУБД, надо знать, через какие закоулки организована эта связь. Самый прямой вариант - sasl-<что-то>, sasl-mysql, например.
Например, у меня auxprop и sasl_auxprop_plugin: SQL. И описаны SQL-запросы. saslauthd у меня не используется для cyrus-imap. В общем, вариантов вагон. reconstruct восстанавливает структуру (индексы то есть), а не удалённый ящик.

djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-11-26 7:03:59

Меня сейчас более волнует вопрос по скриптам, что более никто эту тему не читает? и не может чиркнуть здесь по теме ;-)

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение ASY » 2011-11-26 10:48:42

djakson писал(а):Меня сейчас более волнует вопрос по скриптам
Что касается конкретики про "Postfixadmin", это не ко мне, я его не ставил и не использовал никогда.

djakson
рядовой
Сообщения: 11
Зарегистрирован: 2011-11-19 19:30:04

Re: Postfixadmin Exim Cyrus-imapd

Непрочитанное сообщение djakson » 2011-12-06 8:08:17

Ну догнал я куда нужно прикладывать эти скрипты. До всего приходится до ходить самому :(

первым делом правим файл конфига cyrus.conf что лежит /postfixadmin/ADDITIONS/cyrus/

Код: Выделить всё

#!/usr/bin/perl
# Config
$cyrus_user =           'cyrus';
$cyrus_password =       '*****';
$cyrus_host =           'localhost';
# тут типа если в названиях ящиков есть '.' то ставим слеш
# у меня ящики типа user.<name> поэтому я отключил этот параметр
# а то у меня ошибка при поиске ящика было
# unixhierarchysep => 1 (yes) / 0 (no)
$unixhierarchysep =     0;
# Common routines
sub mailbox_name {
        my $mailbox = shift;

        if($unixhierarchysep) {
                $mailbox = 'user/'.$ARGV[0];
        } else {
                $mailbox = 'user.'.$ARGV[0];
        }

        return $mailbox;
}
sub die_on_error {
        my $cyradm = shift;
        if($cyradm->error) { die $cyradm->error; }
}
1;
Ну потом я этот файл поместил в /etc/exim/

далее открываем файлы: cyrus-mailbox-postcreation.pl, cyrus-mailbox-postdelete.pl, cyrus-mailbox-postedit.pl
и правим во всех пути к файлу /etc/exim/cyrus.conf - не путать c конфигом от cyrus-imapd
Назначение:
cyrus-mailbox-postcreation.pl - после создания ящика в postfixadmin задает ему квоты в cyrus базе
cyrus-mailbox-postdelete.pl - после удаления ящика в postfixadmin удаляет папки для ящика ну сам ящик с квотами в базе cyrus
cyrus-mailbox-postedit.pl - после редактирования ящика изменяет квоты в базе cyrus.

Правим конфиг postfixadmin приведу только что нужно

Код: Выделить всё

// Позволяет задавать квоты при создании почтового ящика чтобы можно задавать их и для cyrus
$CONF['quota'] = 'YES';
// You can either use '1024000' or '1048576' - это для меня не понятный перевод но путем подбора понял что если в админке postfixadmin типа задать квоту 9Мб с таким(1024) параметром то получается именно 9Мб если значение  
// будет другое то сами понимаете что будет. Я так и не понял почему они указывают(типа рекомендуют) такие параметры.
$CONF['quota_multiplier'] = '1024';
// $CONF['mailbox_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
// Пишем так
   $CONF['mailbox_postcreation_script']='/var/eximadmin/ADDITIONS/cyrus/cyrus-mailbox-postcreation.pl';

// $CONF['mailbox_postedit_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postedit.sh';
// Пишем так
   $CONF['mailbox_postedit_script']='/var/eximadmin/ADDITIONS/cyrus/cyrus-mailbox-postedit.pl';

// $CONF['mailbox_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';
// Пишем так
   $CONF['mailbox_postdeletion_script']='/var/eximadmin/ADDITIONS/cyrus/cyrus-mailbox-postdelete.pl';
Ну дадим права на выполнение этих скриптов я дал 777 но тут можете поэкспериментировать сами
Иначе а админке вылазит типа ошибка что не удается найти ящик
И теперь все прекрасно меняется и изменяется и удаляется без использования тулсы cyradm - все делается в одной админке