Страница 1 из 1

Dovecot + quota plugins

Добавлено: 2009-06-16 13:14:39
atomic
Всем привет!

Решил квотирование ящиков сделать с помощью Dovecot.
Итак, квотирование и письмо о предупреждении того что ящик скоро переполнится работает как часы для пользователей.
Например, код:

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

plugin {
    quota = maildir:user quota
    quota_rule = *:storage=5M
    quota_warning = storage=50%% /usr/local/bin/quota-warning.sh 50
}
но зачем всех подгонять под стандарт 5МБ подумал я (5МБ тут чисто как пример чтобы проверить скрипт на переполнение)
разумней тащить все из базы для каждого пользователся отдельно. Благо http://wiki.dovecot.org/Quota/1.1 нам говорит об этом как раз:

Next override the default 1GB quota for users:

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

# MySQL:
user_query = select uid, gid, home, \
  concat('*:bytes=', quota_bytes) as quota_rule \
  from users where userid = '%u'
что я и сделал себе в dovecot-sql.info:

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

user_query = SELECT 501 AS uid, 501 AS gid, concat('*:storage=', quota, 'M') FROM mailbox WHERE username = '%n' AND domain='%d'
Только dovecot всеравно игнорирует это. он упорно продолжает ограничивать доступ к папкам пользователей для планки в 5МБ заданной.
может я чего-то не уловил...может довкотовские вики не вчитал как следует..не ясно...

PS:
в логах:

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

dovecot: 2009-06-16 13:56:52 Info: auth(default): master out: USER      70      test@test.ru        uid=501 gid=501 concat('*:storage=', quota, 'M')=*:storage=20M
dovecot: 2009-06-16 13:56:52 Info: pop3-login: Login: user=<test@test.ru>, method=PLAIN, rip=192.168.1.2, lip=192.168.1.1
dovecot: 2009-06-16 13:56:52 Info: POP3(test@test.ru): Loading modules from directory: /usr/local/lib/dovecot
dovecot: 2009-06-16 13:56:52 Info: POP3(test@test.ru): Module loaded: /usr/local/lib/dovecot/lib10_quota_plugin.so
dovecot: 2009-06-16 13:56:52 Info: POP3(test@test.ru): Effective uid=501, gid=501, home=
dovecot: 2009-06-16 13:56:52 Info: POP3(test@test.ru): Quota root: name=user quota backend=maildir args=
dovecot: 2009-06-16 13:56:52 Info: POP3(test@test.ru): Quota rule: root=user quota mailbox=* bytes=5242880 messages=0
dovecot: 2009-06-16 13:56:52 Info: POP3(test@test.ru): Quota warning: bytes=2621440 (50%) messages=0 command=/usr/local/bin/quota-warning.sh 50
dovecot: 2009-06-16 13:56:52 Info: POP3(test@test.ru): maildir: data=/var/mail/test.ru/test
dovecot: 2009-06-16 13:56:52 Info: POP3(test@test.ru): maildir++: root=/var/mail/test.ru/test, index=, control=, inbox=/var/mail/test.ru/test
dovecot: 2009-06-16 13:56:52 Info: POP3(test@test.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/4, size=3257865
как видно выборку в 20МБ он делает, но потом в правила квоты впаиваеи эти 5МБ. может в quota_rule надо что-то по-другому писать?

PPS: dovecot-1.1.15

Re: Dovecot + quota plugins

Добавлено: 2009-06-16 14:13:52
manefesto
секция plugins имеет более высокий приоритет перед твоим конфигом sql, убери из plugins ограничения

Re: Dovecot + quota plugins

Добавлено: 2009-06-16 15:19:15
atomic
manefesto писал(а):секция plugins имеет более высокий приоритет перед твоим конфигом sql, убери из plugins ограничения
я не смогу убрать из plugin на quota-rule ограничения (если ты про них) т.к. у него такой синтаксис:

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

quota_rule = <mailbox name>:<limit configuration>
а про приоритету то да, понятно, что снизу приоритет выходит больше чем выборка из sql.

Re: Dovecot + quota plugins

Добавлено: 2009-06-17 0:24:41
andryu
atomic писал(а): я не смогу убрать из plugin на quota-rule ограничения (если ты про них) т.к. у него такой синтаксис:

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

quota_rule = <mailbox name>:<limit configuration>
а про приоритету то да, понятно, что снизу приоритет выходит больше чем выборка из sql.
У меня без quota_rule всё работает. Просто

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

plugin {
    quota = maildir
}
Установка_Dovecot тут всё давно красиво описано :)
Dovecot всё сам из базы берёт, quota_rule нужно если вы базу не используете. Лучше бы придумать, как сделать квоту на весь домен(если их много). Очень насущный вопрос. У кого-нибудь есть решение?

Re: Dovecot + quota plugins

Добавлено: 2009-06-17 0:49:41
hizel
триггерами и хранимыми процедурами sql-я вычислять?

Re: Dovecot + quota plugins

Добавлено: 2009-06-17 1:27:48
atomic
andryu писал(а): У меня без quota_rule всё работает. Просто

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

plugin {
    quota = maildir
}
спасибо! просто смутило вот что из их офф. вики:
Keep all the global settings in plugin section and override only those settings you need to in your userdb (с)
А, кажется, из их описаний и следовало что глобальный настройки это quota и quota_rule.

а вообще по-хорошему я в dovecot-sql.conf забыл as quota_rule вписать. поэтому и вышел казус.

всем спасибо!

Re: Dovecot + quota plugins

Добавлено: 2009-06-17 2:49:31
goshanecr
Друзья! Извините меня пожалуйста за такое грубое почти оффтопное вторжение в Ваш успешно разрешившийся тред, но Вы тут вроде шарите в вопросах с dovecot'ом, а у меня с ним какая-то тупая проблема и описана она в этой ветке. :cz2: :bn: Помогите пожалста, всё что надо дополнительного из логов и конфигов предоставлю по первому требованию :)

Re: Dovecot + quota plugins

Добавлено: 2009-06-17 9:51:13
andryu
<em>hizel</em> писал(а):триггерами и хранимыми процедурами sql-я вычислять?
А подробней можно?
Стандартного решения нет что-ли?

Re: Dovecot + quota plugins

Добавлено: 2009-06-17 12:11:07
hizel
э нет, fail, dovecot не отдает размер сообщения, а так очень мило получилось бы :]

Re: Dovecot + quota plugins

Добавлено: 2009-06-17 23:13:35
andryu
Жалко конечно.. А то в postfixadmin-e квота для домена сейчас служит просто ограничителем максимального размера ящиков..