Мы — долго запрягаем, быстро ездим, и сильно тормозим.

RFC
Программирование
FreeBSD
man
EXIM
  4.62
  часть 1
  часть 2
  часть 3
  часть 4
  часть 5
  часть 6
  часть 7
  часть 8
  часть 9
  часть 10
  часть 11
  часть 12
  часть 13
  часть 14
  часть 15
  часть 16
  часть 17
  часть 18
  часть 19
  часть 20
  часть 21
  часть 22
  часть 23
  часть 24
  часть 25
  часть 26
  часть 27
  часть 28
  часть 29
  часть 30
  часть 31
  часть 32
  часть 33
  часть 34
  часть 35
  часть 36
  часть 37
  часть 38
  часть 39
  часть 40
  часть 41
  часть 42
  часть 43
  часть 44
  часть 45
  часть 46
  часть 47
  часть 48
  часть 49
  часть 50
  часть 51
  часть 52
  часть 53
  filter facility
  4.70


www.lissyara.su —> документация —> EXIM —> 4.62 —> часть 23

23. Среда для работы локальных транспортов


    Локальные транспорты обрабатывают доставки в файлы и трубы (pipe). (О транспорте autoreply можно думать как о доставке в трубу.) Exim всегда выполняет транспорты в субпроцессах, под заданным gid и uid. Типичная доставка в локальные почтовые ящики выполняется под gid и uid локального пользователя.
   Также, exim устанавливает специфическую текущую директорию, когда работает транспорт; для некоторых транспортов, также уместна установка домашней директории. Единственный транспорт, устанавливающий переменные окружения -
pipe; для получения дополнительных деталей, смотрите раздел 29.4.
   Значение, используемое для uid, gid, и директорий может приходить из нескольких различных мест. Во многих случаях, роутер, обрабатывающий адрес, ассоциирует настройки этого адреса как результат его опций
check_local_user, group или user. Однако, значения также можно задать в собственной конфигурации транспорта, и они перезадают любые прихожящие из роутера.

23.1 Одновременные доставки

   Если одновременно приходят два различных сообщения, для одного и того же пользователя, то, вероятно, два процеса доставки выполнятся одновременно. Когда для записи в файл используется транспорт appendfile, exim применяет правила блокировки, чтобы помешать одновременным процессам записывать в один файл одновременно.
   Однако, когда вы используете транспорт
pipe, вам решать, как упорядочивать необходимую блокировку. Вот, глупый пример:
my_transport:
  driver = pipe
  command = /bin/sh -c 'cat >>/some/file'

   Он, должен записывать сообщение в конце файла. Однако, если придут два сообщения одновременно, в файле будет свалка. Вы можете использовать утилиту exim_lock (смотрите раздел 49.15), для блокировки файла с использованием того же алгоритма, который использует exim.

23.2 Uid`ы и gid`ы

   У всех транспортов есть опции group и user. Если установлена group, она перезадаёт любую группу, заданную маршрутизатором в адресе, даже если для транспорта не задана опция user. Это позволяет, например, производить локальную доставку почты под uid получателя (установленного роутером), но в специальной группе (установленной транспортом). Например:
# Routers ...
# User/group are set by check_local_user in this router
local_users:
  driver = accept
  check_local_user
  transport = group_delivery

# Transports ...
# This transport overrides the group
group_delivery:
  driver = appendfile
  file = /var/spool/mail/$local_part
  group = mail

   Если для транспорта установлена опция user, её значение переопределяет, то, что установленно маршрутизатором в адресе. Если user задано не в виде числа, и незадана group, gid ассоциируется с используемым пользователем. Если user в виде числа, group должна быть задана.
   Когда uid берётся из конфигурации транспорта, для связанных с этим uid групп вызывается функция
initgroups(), если для транспорта установлена опция initgroups. Когда uid не задан транспортом, но ассоциирован роутером с адресом, опция для вызова initgroups() берётся из конфигурации роутера.
   Транспорт
pipe содержит специальную опцию - pipe_as_creator. Если она задана, и не задана user, используется uid процесса, вызвавшего exim для передачи сообщения, и если не задана group, также используется оригинальный gid.
   Это - предпочтительный детализованный порядок получения gid; используется первый из установленных:

  • Установка group транспорта;
  • Установка group роутера;
  • Gid ассоциированный с пользовательской настройкой роутера, или как результат check_local_user, или явной нечисловой установки user;
  • Группа, ассоциированная с нечисловой установкой user транспорта;
  • В транспорте pipe, gid создателя, если deliver_as_creator установлена, и uid - uid создателя;
  • Gid exim`a, если по дефолту используется uid exim`a.
       Если, например, пользователь определён в роутере в цифровой форме, и в нём нет установок группы, нет доступного gid. В этой ситуации, происходит ошибка. Это отличается от uid, для которого всегда есть дефолтовое значение. Используется первая из установленных настроек:
  • Установка user транспорта;
  • В транспорте pipe, uid создателя, если установлена deliver_as_creator;
  • Установка user роутера;
  • Установка роутера - check_local_user;
  • Uid exim`a.
       Разумеется, всё равно будет ошибка, если выбранный uid в списке
    never_users.

    23.3 Текущая и домашняя директории

       Роутеры могут устанавливать текущую и домашнюю директории для локальных транспортов путём опций transport_current_directory и transport_home_directory. Однако, если для транспорта установлены опции current_directory и home_directory, они переопределяют значения роутера. В деталях, домашняя директория для локального транспорта берётся из первого установленного значения:

  • Опции home_directory, в транспорте;
  • Опции transport_home_directory в роутере;
  • Данных пароля, если в роутере установлена check_local_user;
  • Опции router_home_directory, в роутере.
       Текущая директория берётся из первого установленного значения:
  • Опции транспорта current_directory;
  • Опции transport_current_directory, роутера.
       Если ни роутер, ни транспорт не устанавливают текущую директорию, exim использует значение домашней директории, если оно установлено. Иначе, до работы локального транспорта, он устанавливает текущую директорию в
    /.

    23.4 Переменные раскрытия произведённые из адреса

       Обычно, локальная доставка обрабатывает один адрес, и в этом случае, переменные типа $domain и $local_part установлены в течение локальных доставок. Однако, в некоторых обсоятельствах, может быть обработано более одного адреса за раз (например, при записи пакетного SMTP для дальнейшей передачи другими средствами). В этом случае, переменные, ассоциированные с локальной частью, никогда не устанавливаются, $domain устанавливается лишь если адреса имеют одинаковый домен, $original_domain не устанавливается никогда.


    =============
    translated by lissyara



    Ссылка на обсуждение: http://forum.lissyara.su/viewforum.php?f=20.



  • Хостинг HOST-FOOD

    2014-07-27, lissyara
    gmirror

    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
    2013-08-20, zentarim
    Scan+Print server FreeBSD 9

    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    2011-11-20, BlackCat
    Разъём на WiFi-карту

    Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
    2011-09-14, manefesto
    Настройка git+gitosis

    Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
    2011-08-14, zentarim
    Wi-FI роутер + DHCP + DNS

    Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
    2011-06-15, -ZG-
    Охранная система на FreeBSD+LPT

    В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
    2011-03-13, terminus
    ng_nat

    Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
    2011-02-20, Капитан
    Nagios+Digitemp

    Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
    2011-02-17, Le1
    Zyxel Configuration

    Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
    2011-02-16, fox
    hast carp zfs ucarp cluster

    HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
    2011-02-04, BlackCat
    Восстановление ZFS

    История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
    2011-02-03, Капитан
    1-Wire

    Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 15 чел.
    За последние 30 мин было: 51 человек
    За сегодня было
    896 показов,
    161 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.0343 секунд
    Из них PHP: 25%; SQL: 75%; Число SQL-запросов: 56 шт.
    Исходный размер: 101847; Сжатая: 16462