Dovecot Variable Expansion

Система: Debian Jessie

Я пытаюсь поместить переменную среды в конфигурацию sql, например:

password_query = SELECT userid AS user, crypt AS password, maildir as
userdb_home, 500 as userdb_uid, 500 as userdb_gid FROM local_account
WHERE userid = '%u' and mbox_host = '%{env:CLUSTERNAME}' \
    and ( ( imap_aktiv='1' and '%s'='imap' ) or ( pop_aktiv='1' and
'%s'='pop3' ) or ( sieve_aktiv='1' and '%s'='sieve' ) ) \
    and aktiv_abruf='1'

Моя переменная

%{env:CLUSTERNAME}

CLUSTERNAME устанавливается через / и т.д. / по умолчанию / голубятня. Я попытался установить Переменная конфигурации import_environment на

TZ CLUSTERNAME

, но это ничего не изменило.

Когда я выполняю это через попытку входа в систему, я вижу следующее в Вывод tcpflow:

SELECT userid AS user, crypt AS password, maildir as userdb_home, 508 as
userdb_uid, 503 as userdb_gid FROM local_account WHERE userid = 'te' and
mbox_host = 'env:CLUSTERNAME}' and ( ( imap_aktiv='1' and 'pop3'='imap'
) or ( pop_aktiv='1' and 'pop3'='pop3' ) or ( sieve_aktiv='1' and
'pop3'='sieve' ) ) and aktiv_abruf='1'

Итак,

%{env:CLUSTERNAME}

был проанализирован как

env:CLUSTERNAME}

, что не соответствует документу ( http://wiki.dovecot.org/Variables ), и также кажется, что парсер каким-то образом видит это как короткую переменную (удаление% + {).

Есть подсказки, что здесь может происходить / как я могу заставить это работать?

0
задан 16 April 2016 в 23:57
1 ответ

Для справки:

Проблема в двояко:

  1. / etc / default / dovecot не соблюдается модульным файлом systemd

  2. Расширение% {env: VAR} несколько ошибочно: если getenv (VAR) возвращает NULL, dovecot возвращается к стандартному раскрытию коротких переменных который пытается расширить% {. Это не удается по очевидным причинам.

Как исправить:

  1. Добавить параметр среды в файл модуля, например:

    Environment = CLUSTERNAME = mail.mydomain.com

  2. Разрешить импорт переменной среды в dovecot.conf:

    import_environment = CLUSTERNAME

  3. Используйте как

    % {env: CLUSTERNAME}

0
ответ дан 5 December 2019 в 10:36

Теги

Похожие вопросы