В этой лекции
В предыдущей лекции
обсуждалась организация и
функционирование почтовых псевдонимов.
Одной из функций почтовых псевдонимов
является организация простых списков
рассылки — когда сообщение, принятое на
один адрес электронной почты тиражируется
и рассылается по еще нескольким адресам.
Хотя это довольно полезная функция файла aliases,
на самом деле списки рассылки, к которым
привыкло большинство пользователей сети
Internet, обладают намного более мощными
возможностями. В этой лекции обсуждаются
вопросы организации полнофункциональной
системы списков рассылки на базе почтового
сервера под управлением ОС Linux. В такой
системе обеспечивается поддержка
нескольких списков рассылки, а также
дополнительные функции администрирования
для локальных и удаленных пользователей
электронной почты.
Вероятно, вы уже подписывались на какие-либо списки рассылки и имеете общее представление о них. Если вам приходилось хотя бы один раз посылать сообщение в список рассылки со словом subscribe (англ.— подписаться) в теле сообщения, то вы, очевидно уже работаете с одной из служб списков рассылки. Возможность подписки и отказа от подписки на тот или иной список рассылки — одна из функций полноценного сервера списков рассылки. В этой лекции рассматриваются основные функции, которые поддерживаются практически всеми серверами списков рассылки.
Желая стать членом какого-либо списка рассылки, вы прежде всего должны послать сообщение с просьбой о подписке на данный список рассылки. При обслуживании запросов на подписку сервер списков рассылки может использовать несколько различных параметров.
Подписаться на открытый список рассылки может любой желающий. При этом подлинность адреса электронной почты не проверяется. Это простейший, с точки зрения администрирования, способ организации списков рассылки. Однако здесь имеется один серьезный недостаток. При таком способе построения списков рассылки предполагается, что адрес электронной почты, с которого поступил запрос на подписку, принадлежит одному человеку. Иногда такое заблуждение может дорого обойтись: вы можете столкнуться с ситуацией, когда подписавшиеся на ваш список рассылки люди даже не подозревают об этом.
Для решения подобной проблемы в большинстве программ, реализующих функции сервера списков рассылки, при организации открытых списков рассылки требуется подтверждение при подписке на тот или иной список рассылки. При поступлении на сервер запроса на подписку он отправляет обратно сообщение с просьбой подтвердить этот запрос. Часто, чтобы избежать подделки сообщения, подтверждающего подписку, используется специальный идентификационный код. После получения подтверждения о подписке адрес электронной почты включается в список рассылки.
Все запросы на подписку в закрытый список рассылки поступают на специальный почтовый адрес, так называемого владельца списка рассылки. Новые адреса не включаются в список рассылки до тех пор, пока его владелец не подтвердит право на подписку того или иного пользователя. Владелец списка рассылки полностью контролирует числящихся в этом списке пользователей.
Пользователи могут посылать сообщения в список рассылки, после чего они рассылаются всем остальным подписчикам этого списка. В немодерируемых списках рассылки не проверяются содержание и другие параметры сообщений. Любой подписчик может послать какое угодно сообщение, и оно автоматически будет разослано всем остальным подписчикам данного списка рассылки.
Модерируемые списки рассылки часто смущают владельцев списков, но иногда требуется контролировать содержание сообщений, прежде чем поместить их в список рассылки. Модерируемые списки рассылки позволяют владельцам просматривать все сообщения перед отправкой их другим пользователям. Если по каким-либо причинам владелец списка рассылки не хочет рассылать сообщение, то он может исключить его из списка рассылки. Если же содержание сообщения соответствует всем критериям, то оно пересылается в список рассылки обычным порядком. Очевидно, что такой способ организации списков рассылки создает дополнительную работу владельцам списков рассылки. Однако иногда, в зависимости от тематики и аудитории, для которой предназначен тот или иной список рассылки, это бывает необходимо.
Большинство программных пакетов, реализующих функции сервера списков рассылки, предлагают довольно полезную функцию — удаленное управление списками рассылки. Это позволяет владельцу того или иного списка рассылки создавать специальный пароль доступа к функциям администрирования списка рассылки. Получив доступ к административным функциям, владелец списка рассылки с помощью специальных сообщений, посылаемых по электронной почте, может управлять работой сервера списков рассылки. Ввиду того что все управление сервером списков рассылки можно выполнять по электронной почте, владелец списка рассылки может находиться в любой точке земного шара. Единственное условие для администрирования — наличие доступа к электронной почте. Таким образом, осуществляется удаленное управление списками рассылки.
Каждый список рассылки имеет отдельный файл конфигурации, который обслуживается владельцем списка рассылки. С помощью удаленного администрирования вы можете изменить конфигурацию списка рассылки — открытый или закрытый, модерируемый и немодерируемый. Все эти манипуляции можно выполнить, находясь за тысячи километров от сервера списков рассылки.
Серверы списков рассылки, как правило, формируют также дайджесты принятых сообщений. Сервер списков рассылки можно настроить для ежедневных, еженедельных и ежемесячных дайджестов сообщений. Пользователь может запросить получение через список рассылки дайджестов сообщений, а не самих сообщений. Дайджест представляет собой выдержку из сообщений, распространяющихся по списку рассылки. Иногда удобней получать в конце рабочего дня большое сообщение, содержащее дайджест, чем в течение всего дня получать много коротких сообщений. Однако сообщения, чувствительные ко времени (например, требующие немедленного ответа) не могут включаться в дайджесты. Дело в том, что такие дайджесты будут содержать устаревшую информацию.
Архивы представляют собой файлы, содержащие все переданные сообщения. Владелец списка рассылки может определить интервал времени, через который содержимое архивов будет обновляться, — ежедневно, еженедельно, ежемесячно или раз в год. Все сообщения, отправленные в список рассылки в установленный период времени, также добавляются в файл архива. Новые члены списка рассылки должны иметь возможность доступа к архивам сообщений. Для этого на сервере списков рассылки можно создавать списки архивных файлов, которые пользователи могут затем запросить по электронной почте.
Одним из наиболее популярных
пакетов является программный пакет Majordomo,
написанный Брентом Чепменом (Brent Chapman).
Программа Majordomo реализует функции сервера
списков рассылки, в котором поддерживаются
все возможности списков рассылки,
описанные в предыдущем разделе. Этот
программный пакет представляет собой набор
программ на языке Perl (используемом также
для управления сообщениями в файле aliases ),
файлов конфигурации и каталогов, в которых
находятся списки рассылки, дайджесты и
архивы.
Установка программы Majordomo на почтовом сервере под управлением ОС Linux требует минимальных усилий со стороны администратора. Понадобится лишь настроить соответствующим образом программу sendmail и убедиться в надежности защиты почтовой системы от атак извне. В этом разделе описаны шаги, которые нужно предпринять для установки и настройки сервера списков рассылки под управлением программы Majordomo.
Некоторые дистрибутивы ОС Linux включают в себя бинарный пакет с Majordomo. В дистрибутиве Caldera OpenLinux имеется уже готовый к установке RPM-файл с программой Majordomo.
Предупреждение
Предупреждаем пользователей OpenLinux 2.2 об ошибке в программе Majordomo, поставляемой с этой версией. Если вы используете OpenLinux версии 2.2, не пытайтесь установить RPM-файл с Majordomo, поставляемый на CD. Исправленная версия этого файла может быть получена с Web-сайта компании Caldera по адресу: http://www.calderasystems.com.
Если в имеющейся у вас версии ОС Linux отсутствует бинарный файл с программой Majordomo или вы хотите получить последнюю его версию, это можно сделать через сеть Internet. На большинстве серверов в Internet, посвященных поддержке различных UNIX и Linux платформ, можно найти дистрибутив программы Majordomo. На момент написания книги официальным распространением и поддержкой программы Majordomo занималась ассоциация Great Circle Associates. Ее Web-сайт находится по адресу: http://www.greatcircle.com/majordomo/.
Соответственно, FTP-сервер, с
которого можно получить различное
программное обеспечение, — ftp.greatcircle.com.
Интересующее нас программное обеспечение
находится на нем в каталоге /pub/majordomo.
Последняя версия программы Majordomo всегда
содержится в файле majordomo.tar.gz
(на данный момент — 1.94.4). При получении
этого файла по FTP не забудьте включить режим BINARY.
Загрузив программу через Internet, можно приступить к ее установке на сервере. Ввиду того что программа Majordomo распространяется в исходных кодах, для ее установки вам понадобится компилятор языка С. Установка Majordomo производится в несколько этапов.
Для обеспечения безопасности
почтовой системы в целом программу Majordomo
следует устанавливать с использованием
отдельной учетной записи. В противном
случае программы на языке Perl будут
запускаться от имени пользователя root,
что повысит уязвимость вашей системы. Новая
учетная запись должна входить в группу,
имеющую доверительные отношения с
программой sendmail, так как она должна
взаимодействовать с ней. Определить, какие
группы имеют доверительные отношения с
sendmail, можно по файлу конфигурации /etc/sendmail.cf.
В нем обратите внимание на строки 'T'.
В листинге 18.1 приведены соответствующие
строки для ОС Mandrake Linux 6.0.
1 ###################### 2 # Trusted users # 3 ###################### 4 5 # this is equivalent to setting class "t" 6 #Ft/etc/sencimail.ct 7 Troot 8 Tdaemon 9 Tuucp
В листинге 18.1 показаны
доверенные пользователи на почтовом
сервере под управлением ОС Linux для
программы sendmail. Как видите, в строке 6
программе sendmail может быть указано
считывать доверенных пользователей из
файла /etc/sendmail.ct.
Однако в данном случае на сервере
доверительные отношения с программой sendmail
имеют группы root, daemon
и uucp.
В этом примере при установке
Majordomo использованы группа daemon
и идентификатор пользователя majordomo.
Файл с программой Majordomo копируется в
рабочий каталог Majordomo. Чтобы извлечь
программу из архива, наберите в командной
строке:
tar -zxvf
majordomo.tar.gz
В созданный с помощью этой команды подкаталог будет развернут исходный код Majordomo. Затем необходимо изменить Makefile в соответствии с требованиями к конкретной системе.
В Makefile отображаются, как правило, все параметры, с которыми будет работать Majordomo после компиляции. В листинге 18.2 представлен фрагмент Makefile.
1 #$Modified: Wed Aug 27 17:52:25 1997 by cwilson $ 2 # 3 # $Source: /sources/cvsrepos/majordomo/Makefile,v $ 4 # $Revision: 1.63 $ 5 # $Date: 1997/08/27 15:56:21 $ 6 # $Header: /sources/cvsrepos/majordomo/Makefile,v 1.63 1997/08/27 15:56:21 7 cwilson Exp $ 8 # 9 10 # This is the Makefile for Majordomo. 11 # 12 #------------- Configure these items --------------# 13 # 14 15 # Put the location of your Perl binary here: 16 PERL = /usr/bin/perl 17 18 # What do you call your C compiler? 19 CC = gcc 20 21 # Where do you want Majordomo to be installed? This CANNOT be the 22 # current directory (where you unpacked the distribution) 23 W_HOME = /usr/local/majordomo 24 25 # Where do you want man pages to be installed? 26 MAN = $(W_HOME)/man 27 28 # You need to have or create a user and group which majordomo will run as. 29 # Enter the numeric UID and GID (not their names!) here: 30 W_USER = 507 31 W_GROUP = 2 32 33 # These set the permissions for all installed files and executables (except 34 # the wrapper), respectively. Some sites may wish to make these more 35 # lenient, or more restrictive. 36 FILE_MODE = 644 37 EXEC_MODE = 755 38 HOME_MODE = 751 39 # If your system is POSIX (e.g. Sun Solaris, SGI Irix 5 and 6, Dec Ultrix 40 # MIPS, BSDI or other 4.4-based BSD, Linux) use the following four lines. 41 # Do not change these values! 42 WRAPPER_OWNER = root 43 WRAPPER_GROUP = $(W_GROUP) 44 WRAPPER_MODE = 4755 45 POSIX = -DPOSIX_UID=$(W_USER) -DPOSIX_GID=$(W_GROUP) 46 # Otherwise, if your system is NOT POSIX (e.g. SunOS 4.x, SGI Irix 4, 47 # HP DomainOS) then comment out the above four lines and uncomment 48 # the following four lines. 49 # WRAPPER_OWNER = $(W_USER) 50 # WRAPPER_GROUP = $(W_GROUP) 51 # WRAPPER_MODE = 6755 52 # POSIX = 53 54 # Define this if the majordomo programs should *also* be run in the same 55 # group as your MTA, usually sendmail. This is rarely needed, but some 56 # MTAs require certain group memberships before allowing the message sende 57 # to be set arbitrarily. 58 # MAIL_GID = numeric_gid_of_MTA 59 60 # This is the environment that (along with LOGNAME and USER inherited from 61 # the parent process, and without the leading "W_" in the variable names) 62 # gets passed to processes run by "wrapper" 63 W_SHELL = /bin/sh 64 W_PATH = /bin:/usr/bin:/usr/ucb 65 W_MAJORDOMO_CF = $(W_HOME)/majordomo.cf 66 67 # A directory for temp files.. 68 TMPDIR = /usr/tmp
Для того чтобы привести работу
Majordomo в соответствие с вашими требованиями,
в листинге 18.2 следует изменить несколько
строк. Так, в строке 16 задается
местонахождение программы Perl, необходимой
для работы Majordomo. Поскольку все сценарии
Majordomo написаны именно на этом языке, то на
сервере нужно установить Perl и указать
программе Majordomo, откуда она сможет вызывать
интерпретатор этого языка. Язык Perl является
одним из наиболее популярных языков
программирования для создания сценариев.
Он написан Лэрри Уоллзом (Larry Walls) и включен в
большинство дистрибутивов ОС Linux. В строке 19
описан компилятор GNU языка С — gcc,
который также входит в большинство версий
ОС Linux.
Кроме компиляторов, нужно также
указать, куда будет устанавливаться Majordomo. В
строке 23 описан рабочий каталог home
для программы Majordomo. Ни в коем случае не
путайте его с рабочим каталогом
пользователя majordomo.
Это абсолютно разные каталоги. Они могли бы
совместить свои функции в одном каталоге,
но намного удобней, когда конфигурационные
файлы и сценарии запуска находятся в разных
каталогах. В качестве рабочего каталога в
данном случае мы решили создать
специальный каталог /usr/local/majordomo.
Его нужно создавать, будучи пользователем root.
Затем можно сменить владельца каталога на
пользователя majordomo,
воспользовавшись командой
chown
majordomo.daemon /usr/local/majordomo
После этого вам придется
заменить majordomo.daemon
на пользователя и группу, от имени которых
производилась установка программы Majordomo.
Таким образом, в Makefile необходимо описать
пользователя majordomo
и группу daemon. В
строках 30 и 31 описываются именно эти
параметры программы Majordomo. Вы можете войти в
систему под именем majordomo
и с помощью команды id
определить текущий идентификатор
пользователя и группы. В приведенном
примере идентификатор пользователя majordomo
— 507, а идентификатор группы daemon
— 2. Помните, что Makefile воспринимает только
числовые значения и не может работать с
текстовыми переменными.
Основной файл конфигурации majordomo.cf
предназначен для управления работой
программы Majordomo при ее установке. Для
создания нового файла конфигурации нужно
скопировать находящийся в каталоге majordomo-1.94.4
файл шаблона sample.cf
в файл majordomo.cf в
том же каталоге. В листинге 18.3 представлен
пример готового файла majordomo.cf.
1 #
2 # A sample configuration file for majordomo. You must read through this
3 # and edit it accordingly!
4 #
5
6 # $whereami -- What machine am I running on?
7 #
8 $whereami = "smallorg.org";
9
10 # $whoami -- Who do users send requests to me as?
11 #
12 $whoami = "Majordomo\@$whereami";
13
14 # $whoami_owner -- Who is the owner of the above, in case of problems?
15 #
16 $whoami_owner = "Majordomo-Owner-\@$whereami";
17
18 # $homedir -- Where can I find my extra .pl files, like majordomo.pl?
19 # the environment variable HOME is set by the wrapper
20 #
21 if ( defined $ENV{"HOME"}) {
22 $homedir = $ENV{"HOME"};
23 } else {
24 $homedir = "/usr/local/majordomo";
25 }
26
27 # $listdir -- Where are the mailing lists?
28 #
29 $listdir = "$homedir/lists";
30
31 # $digest_work_dir -- the parent directory for digest's queue area
32 # Each list must have a subdirectory under this directory in order for
33 # digest to work. E.G. The bblisa list wou.Ki use:
34 # /usr/local/mail/digest/bblisa
35 # as its directory.
36 #
37 $digest_work_dir = "/usr/local/mail/digest";
38
39 # $log - - Where do I write my log?
40 #
41 $log = "$homedir/Log";
В файле majordomo.cf
необходимо описать несколько переменных.
Так, в строке 8 определяется переменная $whereami,
в которой задается обратный адрес для
возврата сообщения. Если программой sendmail на
почтовом сервере используется
преобразование адресов (маскарадинг), то в
качестве обратного адреса выступает
доменное имя, как показано в строке 8. В
противном случае обратный адрес будет
представлять собой полное имя хоста. В
строках 12 и 16 на базе переменной $whereami
описываются переменные $whoami
и $whoami_owner. Их
значения изменять не нужно.
Переменная $homedir,
описанная в строке 24, очень важна для работы
программы Majordomo. Она должна указывать на
рабочий каталог программы Majordomo, который
указан в Makefile. Именно в этом каталоге Majordomo
будет искать сценарии запуска на языке Perl
при обработке сообщений из списка рассылки.
В строке 29 описывается другая переменная — $listdir.
В ней указывается, где программа Majordomo
хранит информацию для списков рассылки. По
умолчанию для этой цели используется
подкаталог lists в
рабочем каталоге Majordomo.
В строке 37 описывается
переменная $digest_work_dir.
С ее помощью определяется местонахождение
файлов $log
в строке 41. Программа Majordomo в файле отчета
ведет учет всех операций, выполненных со
списком рассылки,. Местоположение этого
файла определяется переменной $log
и может быть изменено в зависимости от
требований вашего дистрибутива ОС Linux,
например, на /var/log/majordomo.log.
После отладки файлов Makefile и majordomo.cf
с помощью утилиты GNU вы можете приступить к
созданию выполняемых файлов для Majordomo. Для
этого выполните следующее.
make
wrapper для проверки правильности
работы программы распаковки wrapper.majordomo
задайте make install
для установки сценариев и выполняемых
файлов в рабочий каталог Majordomo.root
задайте make
install-wrapper, чтобы установить программу
wrapper с идентификатором root.Теперь вы можете запустить
программу wrapper и проверить правильность
установки Majordomo. Для этого войдите в систему
как обычный пользователь без каких-либо
специальных полномочий и измените рабочий
каталог программы Majordomo (в нашем случае /usr/local/majordomo ).
Затем, находясь в этом каталоге, задайте
команду:
./wrapper config-test
С помощью этой команды запускается программа wrapper и производится тестирование конфигурации. В листинге 18.4 показан фрагмент сообщения, генерируемого программой wrapper.
1 ---------------- end of tests ----------------------- 2 3 4 Nothing bad found! Majordomo _should_ work correctly. 5 6 If it doesn't, check your configuration file 7 (/usr/local/majordomo/majordomo.cf) 8 closely, and if it still looks okay, consider asking the majordomo-users 9 mailing list at "majordomo-users@greatcircle.com" for assistance. Be sure 10 and fully specify what your problems are, and what type of machine (and 11 operating system) you are using. 12 13 Enjoy!
В листинге 18.4 представлено
несколько последних строк из сообщения,
генерируемого при выполнении config-test.
Как видите, приведенная нами конфигурации
Majordomo успешно прошла тестирование.
Закончив установку программного
пакета Majordomo, следует соответствующим
образом сконфигурировать программу sendmail,
чтобы она смогла распознавать списки
рассылки. Программа Majordomo может
обрабатывать списки рассылки с помощью
файла aliases (см.
подробнее о нем лекцию 17, "Почтовые
псевдонимы и преобразование адресов"). Для
типовой конфигурации Majordomo в файл /etc/aliases
нужно добавить несколько строк,
приведенных в листинге 18.5.
1 # Majordomo aliases 2 majordomo: "|/usr/local/majordomo/wrapper majordomo" 3 owner-majordomo: rich, 4 majordomo-owner: rich
После внесения каких-либо
изменений в файл aliases
необходимо запускать программу newaliases,
чтобы они были восприняты программой sendmail.
В строке 2 листинга 18.5 представлен
псевдоним majordomo,
который указывает на программу wrapper с
параметром majordomo.
Таким образом программа sendmail
инструктируется о запуске программы wrapper
при приеме сообщения.
Существует один секрет,
используемый при запуске программы wrapper с
помощью псевдонимов. Дело в том, что на
некоторых системах в sendmail используется
настройка smrsh,
описанная в лекции 11. С ее помощью запуск
программ из оболочки ограничивается одним
специальным каталогом, владельцем которого
является пользователь root.
Если у вас эта настройка sendmail используется,
то в ней также будет указан и каталог, куда
следует помещать файлы программ, которые
sendmail может запускать самостоятельно. В Mandrake
Linux 6.0 это каталог /etc/smrsh.
Если скопировать программу wrapper из ее
рабочего каталога (в нашем случае это
каталог /usr/local/majordomo/wrapper )
в каталог /etc/smrsh,
то программа sendmail сможет запускать ее.
В строках 3 и 4 описаны два псевдонима. Если, работая со списком рассылки, участник этого списка сталкивается с какими-либо проблемами, он может направить письмо его владельцу с просьбой о помощи, совете и т.п. Эти адреса указывают на реальный адрес электронной почты владельца списка рассылки.
Чтобы проверить, правильно ли
установлена Majordomo, создайте тестовый список
рассылки. Вначале создайте фиктивный файл
списка рассылки в соответствующем каталоге
Majordomo, согласно файлу конфигурации majordomo.cf.
В нашем примере он должен находиться в
каталоге /usr/local/majordomo/lists.
Создать тестовый файл вы можете с помощью
команды
touch /usr/local/majordomo/lists/test
Затем можно послать псевдониму majordomo
команду 'lists' —
вам будет выдан список всех доступных в
данный момент списков рассылки. В листинге
18.6 приведен пример такого тестирования.
1 [rich@shadrach rich]$ echo 'lists' | mail -v majordomo 2 majordomo... aliased to "|/usr/local/majordomo/wrapper majordomo" 3 "|/usr/local/majordomo/wrapper majordomo"... Connecting to prog... 4 "|/usr/local/majordomo/wrapper majordomo"... Sent 5 [rich@shadrach rlch]$ mail 6 Mail version 8.1 6/6/93. Type ? for help. 7 "/var/spool/mail/pich": 1 message 1 new 8 >N 1 Majordomo@smallorg.org Thu Nov 18 18:51 23/736 "Majordomo results" 9 10 Message 1: 11 From Majordomo-Owner@smallorg.org Thu Nov 18 18:51:35 1999 12 Date: Thu, 18 Nov 1999 18:51:34 -0500 13 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to 14 Majordomo-Owner@smallorg.org using -f 15 To: rich@smallorg.org 16 From: Majordomo@smallorg.org 17 Subject: Majordomo results 18 Reply-To: Majordomo@smallorg.org 20 -- 21 22 >>>> lists 23 Majordomo@smallorg.org serves the following lists: 24 25 test 26 27 Use the 'info <list>' command to get more information 28 about a specific list. 29 30
В строке 1 листинга 18.6 приведен
пример использования команды 'lists'
для Majordomo. Параметр командной строки -v
позволяет запуск программы mail в режиме
высокой детализации, при котором
отображается каждое выполняемое действие.
В строках 2–4 представлены события,
происходящие с сообщением. В строке 2
показано, что программа sendmail обнаружила
псевдоним. В строке 3 она попыталась
соединиться с программой wrapper. И в строке 4
показано, что программа sendmail успешно
передала сообщение программе wrapper. После
того как сообщение в список рассылки
отправлено, можно проверить почтовый ящик
отправителя на предмет получения ответа от
Majordomo. В строках 5–30 представлен ответ
программы Majordomo на отправленное нами
сообщение. Из него ясно, что на сервере
списков рассылки в настоящее время
доступен один список рассылки. Естественно,
что это не совсем соответствует
действительности, так как мы полностью не
сконфигурировали списки рассылки.
И последнее, в чем следует
убедиться при проверке работы Majordomo, —
занесены ли посланные команды в файл отчета.
Для этого проверьте файл отчета Majordomo /usr/local/majordomo/log.
В нем должна появиться такая строка:
Nov 18 18:51:34 smallorg.org majordomo[28128] {Rich <rich@shadrach.smallorg.org>} lists
В файле отчета фиксируется время, адрес электронной почты и введенная команда. Регулярно просматривая файл отчета, вы сможете выявить попытки несанкционированного использования сервера списков рассылки.
После установки программы Majordomo
вы можете приступить к созданию различных
списков рассылки. Для этого вначале
необходимо создать пустой файл, в котором
будут храниться адреса электронной почты
участников списка рассылки. Имя этого файла
должно совпадать с названием списка
рассылки. Мы рассмотрим это на примере
списка рассылки под названием officenews.
После того как необходимый файл создан,
следует убедиться в наличии правильного
набора прав доступа к нему. Программа sendmail
может не принимать для обработки список
псевдонимов, группе которых разрешена
запись в файл или в каталог, где они
находятся. Ниже приведены команды для
создания файла и изменения прав доступа:
touch /usr/local/majordomo/lists/officenews chmod 755 /usr/local/majordomo/lists chmod 644 /usr/local/majordomo/lists/officenews
Далее создайте для списка
рассылки информационный файл. Программа
Majordomo использует информационный файл
списка рассылки для предоставления
сведений о нем по требованию кого-либо из
пользователей или при подписке на список
рассылки. Информационный файл обычно
создается в виде list.info,
где list — имя
списка рассылки. В нашем примере создается
информационный файл списка рассылки /usr/local/majordomo/officenews.info,
где содержится текстовое описание списка
рассылки.
Для каждого списка рассылки
необходимо создавать несколько записей в
файле aliases. Их
количество зависит от функций, которые
должен поддерживать тот или иной список
рассылки. В табл. 18.1 приведены псевдонимы,
которые могут использоваться для списка
рассылки с именем list.
| Псевдоним | Описание |
|---|---|
list |
Псевдоним списка рассылки |
list-outgoing |
Реальный список для подписчиков |
owner-list |
Администратор списка рассылки |
list-request |
Адрес для специальных запросов Majordomo |
list-approval |
Персона, проверяющая содержание сообщений в модерируемых списках рассылки (модератор) |
list-digest |
Адрес для дайджестов списков рассылки |
list-digest-request |
Адрес для запросов на отправку дайджестов |
В листинге 18.7 приведен пример
записей в файле aliases
для списка рассылки officenews.
Это список рассылки, стандартный без всяких
излишеств. Он открытый и в нем не
поддерживаются рассылка дайджестов и
ведение архивов сообщений.
1 #officenews mail list entries 2 officenews: "|/usr/local/majordomo/wrapper resend -l officenews officenews-list" 3 officenews-list: :include:/usr/local/majorodomo/lists/officenews 4 owner-officenews: rich, 5 officenews-owner: rich 6 officenews-approval: officenews-owner 7 officenews-request: "|/usr/local/majordomo/wrapper majordomo -l officenews"
При добавлении новых псевдонимов
не забывайте запускать программу newaliases
с правами пользователя root.
С этого момента список рассылки уже может
функционировать, но его еще нужно настроить,
чтобы он работал в соответствии с вашими
требованиями. Вы можете создать файл
конфигурации, отправив в список рассылки
письмо с локального или удаленного
почтового сервера. Программа Majordomo
автоматически создаст файл конфигурации и
отправит его в ответ на ваше письмо. В
листинге 18.8 представлен пример такой
операции и фрагмент возвращенного в ответ
сообщения.
1 [rich@shadrach rich]$ mail officenews-request 2 Subject: 3 config officenews officenews.admin 4 . 5 Cc: 6 [rich@shadrach rich]$ mail 7 Mail version 8.1 6/6/93. Type ? for help. 8 "/var/spool/mail/rich" : 1 message 1 new 9 >N 1 Majordomo@shadrach.s Thu Nov 18 16:25 400/16764 "Majordomo results" 10 1 11 From Majordomo-Owner@shadrach.smallorg.org Thu Nov 18 16:06:05 1999 12 Return-Path: <Majordomo-Owner@shadrach.smallorg.org> 13 Received: (from majordomo@localhost) 14 by shadrach.smallorg.org (8.9.3/8.9.3) id QAA28433; 15 Thu, 18 Nov 1999 19:06:05 -0500 16 Date: Thu, 18 Nov 1999 19:06:05 -0500 17 Message-Id: <199911182106.QAA28433@shadrach.smallorg.org> 18 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to Majordomo-Owner@smallorg.org using -19 f 20 To: rich@smallorg.org 21 From: Majordomo@smallorg.org 22 Subject: Majordomo results 23 Reply-To: Majordomo@smallorg.org 24 Status: R 25 26 -- 27 28 >>>> config officenews officenews.admin 29 admin_passwd = officenews.admin 30 administrivia = yes 31 advertise << END 32 announcements = yes 33 approve_passwd = officenews.pass 34 archive_dir = 35 comments << END 36 date_info = yes 37 date_intro = yes 38 debug = no 39 description = 40 digest_archive = 41 digest_issue = 1 42 digest_maxdays = 43 digest_maxlines = 44 digest_name = officenews 45 digest_rm_footer = 46 digest_rm_fronter = 47 digest_volume = 1 48 digest_work_dir = 49 get_access = list 50 index_access = open 51 info_access = open 52 intro_access = list 53 maxlength = 40000 54 message_footer << END 55 message_fronter << END 56 message_headers << END 57 moderate = no 58 moderator = 59 mungedomain = no 60 noadvertise << END 61 precedence = bulk 62 purge_received = no 63 reply_to = 64 resend_host = 65 restrict_post = 66 sender = owner-officenews 67 strip = yes 68 subject_prefix = 69 subscribe_policy = open+confirm 70 taboo_body << END 71 taboo_headers << END 72 unsubscribe_policy = open 73 welcome = yes 74 which_access = open 75 who_access = open
В строке 1 листинга 18.8 вы видите,
как владелец списка рассылки посылает
почтовое сообщение на адрес officenews-request.
Все команды списка рассылки будут
пересылаться с приставкой к названию
списка рассылки. Как правило, любое
сообщение, посланное в список рассылки
будет автоматически разослано всем его
подписчикам. Однако в пакете Majordomo имеется
специальная программа resend,
с помощью которой вы можете просматривать
содержимое сообщений и игнорировать те из
них, которые содержат команды Majordomo и
посланы в список рассылки по ошибке. Таким
образом, подписчики списка рассылки не
будут раздражаться, получая сообщения,
содержащие команды типа subscribe
и т.п.
В строке 3 показан формат запроса
файла конфигурации для списка рассылки.
Третий параметр в этой строке представляет
собой пароль администратора списка
рассылки. По умолчанию пароль для любого из
списков принят как list.admin,
где list — имя
списка рассылки. Получив такого рода
сообщение, Majordomo посылает ответное, в текст
которого включает созданный ею файл
конфигурации. Файл конфигурации обычно
хранится в каталоге lists
в виде lists.config, где lists — имя списка
рассылки.
Далее в строках 29–75 показаны
различные переменные файла конфигурации,
которые можно изменять при необходимости. В
листинге были опущены пояснительные
комментарии к переменным файла
конфигурации. Значения самих параметров вы
можете узнать из реального файла
конфигурации, где эти комментарии
приводятся. Чтобы внести изменения в
конфигурацию, нужно сохранить это
сообщение, изменить нужный параметр и с
помощью команды newconfig
послать новый файл конфигурации в список
рассылки. Первая строка в таким сообщении
должна быть следующей:
newconfig list adminpasswd,
где list
— имя списка рассылки, а adminpasswd
— пароль администратора списка рассылки.
За этой строкой далее следует обычный файл
конфигурации с внесенными вами изменениями.
В листинге 18.9 представлены переменные, которые чаще всего модифицируются в файле конфигурации.
1 admin_passwd = newpassword 2 approve_passwd = newpasswd 3 description = A mail list used to distribute general office news 4 subscribe_policy = open 5 who_access = list
Большинство других переменных в
стандартных списках рассылки будут
работать нормально со значениями,
заданными по умолчанию. Не забывайте для
нового списка рассылки менять пароль
администратора. В строке 4 листинга 18.9
приведено также изменение типа подписки на
список рассылки. По умолчанию задается тип
подписки open+confirm (открытая
с подтверждением). То есть участники списка
рассылки при подписке на него должны
подтвердить свой запрос на подписку,
ответив на специальное сообщение от Majordomo. В
нашем примере используется открытая
подписка на список рассылки без
подтверждения, что позволяет всем
пользователям свободно на него
подписываться. Если же по списку рассылки
предполагается распространение важной для
компании информации, составляющей
коммерческую тайну и т.п., вы можете
воспользоваться закрытым списком рассылки
с утверждением каждого участника рассылки
владельцем списка. В строке 5 вводится
ограничение на выдачу команды 'who',
с помощью которой отображается список
участников рассылки. В данном случае этот
круг ограничивается только активными
членами списка рассылки. В листинге 18.10
представлены результаты попытки
использования этой команды не членом
списка рассылки.
1 [melanie@shadrach melanie]$ echo 'who' | mail officenews-request 2 [melanie@shadrach melanie]$ mail 3 Mail version 8.1 6/6/93. Type ? for help. 4 "/var/spool/mail/melanie"; 1 message 1 new 5 >N 1 Majordomo@smallorg.o Thu Nov 20 16;40 20/744 "Majordomo results" 6 7 Message 1: 8 From Majordomo-Owner@smallorg.org Thu Nov 18 20:40:54 1999 9 Date: Thu, 18 Nov 1999 20:40:53 -0500 10 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to Majordomo-Owner@smallorg.org using -f 11 To: melanie@smallorg.org 12 From: Majordomo@smallorg.org 13 Subject: Majordomo results 14 Reply-To: Majordomo@smallorg.org 15 16 -- 17 18 >>>> who 19 **** List 'officenews' is a private list. 20 **** Only members of the list can do a 'who'. 21 **** you [ Melanie <melanie@smallorg.org> ] aren't a member of list 'officenews'. 22 23
В строке 1 листинга 18.10 показано,
как пользователь melanie
посылает серверу списков рассылки команду 'who'
с целью получения списка участников
рассылки. В строках 18–21 вы видите ответ,
полученный melanie
от сервера. Как видите, эта команда может
использоваться только членами списка
рассылки, а melanie
таковым не является. Поэтому сервер списка
рассылки отказал ей в предоставлении
списка пользователей закрытой рассылки.
На этом мы заканчиваем рассмотрение установки и настройки программного пакета Majordomo, который реализует функции сервера списков рассылки. В следующем разделе мы рассмотрим использование сервера списков рассылки клиентами электронной почты.
Для обычных пользователей программа Majordomo облегчает выполнение различных процедур со списками рассылки. Так, подписка, создание сообщений для рассылки и отказ от подписки довольно просто осуществляются любым, даже не очень подготовленным пользователем. Однако имеется и набор более сложных команд для подготовленных пользователей, таких как формирование запросов на получение дайджестов и архивов, а также удаленное управление списками рассылки.
Для того чтобы стать членом
списка рассылки, нужно послать запрос на
подписку. Запросы на подписку посылаются с
префиксом -request
перед именем соответствующего списка
рассылки. Поле Subject:(Тема:)
программой Majordomo игнорируется, поэтому вы
можете оставить его пустым. В теле
сообщения можно указать лишь одну строку со
словом subscribe. В
зависимости от режима работы списка
рассылки вы получите либо подтверждение о
подписке, либо специальное сообщение, на
которое вы должны будете ответить, чтобы
подписка состоялась. В листинге 18.11
приведен пример сеанса подписки на список
рассылки.
1 [ rich@shadrach rich]$ mail officenews-request 2 Subject: 3 subscribe 4 . 5 Cc: 6 [rich@shadrach rich]$ mail 7 Mail version 8.1 6/6/93. Type ? for help. 8 "/var/spool/mail/rich": 3 messages 3 new 9 >N 1 Majordomo@smallorg.o Fri Nov 19 04:42 44/1625 "Welcome to officenews" 10 N 2 Majordomo@smallorg.o Fri Nov 19 04:42 18/696 "SUBSCRIBE officenews " 11 N 3 Majordomo@smallorg.o Fri Nov 19 04:42 18/613 "Majordomo results" 12 13 Message 1 : 14 From owner-officenews@smallorg.org Fri Nov 19 04:42:56 1999 15 Date: Fri, 19 Nov 1999 04:42:56 -0500 16 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to owner-officenews@smallorg.org using -f 17 To: rich@smallorg.org 18 From: Majordomo@smallorg.org 19 Subject: Welcome to officenews 20 Reply-To: Majordomo@smallorg.org 21 22 -- 23 24 Welcome to the officenews mailing list! 25 26 Please save this message for future reference. Thank you. 27 28 If you ever want to remove yourself from this mailing list, 29 you can send mail to <Majordomo@smallorg.org> with the following 30 command in the body of your email message: 31 32 unsubscribe officenews 33 34 or from another account, besides rich@smallorg.org: 35 36 unsubscribe officenews rich@smallorg.org 37 38 If you ever need to get in contact with the owner of the list, 39 (if you have trouble unsubscribing, or have questions about the 40 list itself) send email to <owner-officenews@smallorg.org> . 41 This is the general rule for most mailing lists when you need 42 to contact a human. 43 44 Here's the general information for the list you've subscribed to, 45 in case you don't already have it: 46 47 Welcome to the smallorg.org officenews mail list. 48 49 This mail list is used to help keep you informed about general informatic 50 that is happening in the organization. Please post any announcements to 51 this mail list. Unauthorized use of this mail list is prohibited. 52 53
В строках 1–5 листинга 18.11 вы
видите, как пользователь rich
посылает запрос на подписку на псевдоадрес officenews-request.
Пользователи могут также направлять
запросы и на псевдоним majordomo,
но желательно, чтобы команда предварялась
именем списка рассылки, тогда программа
Majordomo сможет определить, к какому из списков
рассылки она относится. Почтовые сообщения,
посланные в ответ на команду, представлены
в строках 6–11. В строке 11 представлено
сообщение, отправленное программой Majordomo в
ответ на запрос о подписке. В строке 10 вы
видите сообщение, которое направляется
владельцу списка рассылки (которым, кстати,
может быть и сам rich ).
В нем сообщается о том, что на данный список
рассылки был подписан новый пользователь. В
строке 9 представлено возвращаемое
пользователю сообщение, в котором
подтверждается его членство в списке
рассылки. В строках 13–53 полностью приведен
текст этого сообщения. Обратите внимание,
что в строках 28–36 даются подробные
инструкции о механизме отказа от подписки.
В строках 47–51 представлен текст из файла officenews.info,
который был создан для этого списка
рассылки.
На почтовый псевдоним -request
можно посылать несколько команд, которые
требуют определенных действий от сервера
списков рассылки. Все эти команды могут
посылаться пользователями списка рассылки.
Как видно из листинга 18.11, команда subscribe позволяет
новым членам списка рассылки посылать
запрос на подписку. Формат этой команды
следующий:
subscribe <list> [<address>],
где list
— имя списка рассылки, а address
— адрес электронной почты, который вы
хотите добавить в список рассылки. Если же
сообщение с требованием о подписке
посылается на псевдоним list-request,
то параметр list в
этой команде можно опустить. Можно также не
указывать адрес электронной почты ( address ),
включаемый в список рассылки, если вы
хотите, чтобы подписка была оформлена на
адрес, с которого отправлен запрос на
подписку. Параметр адреса электронной
почты включен в команду subscribe
для обеспечения возможности подписки с
любого адреса. Результаты подписки будут
зависеть лишь от организации подписки в
данном списке рассылки.
Команда выполняет действия,
обратные команде subcribe.
По этой команде адрес электронной почты
исключается из списка рассылки. Формат
команды:
unsubscribe <list> [<address>],
где, как и в предыдущей команде,
параметры list и address
являются необязательными.
Команда get
используется для получения файлов через
список рассылки. Формат использования этой
команды следующий:
get <list> filename,
где filename
— файл, который находится в списке рассылки.
Чаще всего эта команда используется при
работе с архивами списков рассылки. Член
списка рассылки может получить файл архива
с помощью команды get,
указав имя архива.
Команда index
используется для выдачи списка файлов,
доступных через список рассылки. Формат
этой команды следующий:
index <list>
Команда index
используется обычно вместе с командой get
при работе с архивами списков рассылки. По
этой команде выдается список файлов
архивов, которые можно запросить через
список рассылки.
С помощью команды which
можно определить в какие списки рассылки на
сервере Majordomo входит указанный адрес
электронной почты. Формат этой команды
следующий:
which [<address>]
Если возникает необходимость
получить информацию об адресе электронной
почты, с которого посылается запрос, то
параметр address
можно не указывать. По этой команде Majordomo
выдает перечень всех списков рассылки, в
которых содержится указанный адрес
электронной почты.
Команда who
используется для получения информации об
активных подписчиках указанного списка
рассылки. Ее формат таков:
who <list>
Как уже отмечалось, работа этой команды может быть ограничена и распространяться только на пользователей того или иного списка рассылки.
Команда info
позволяет получить общие сведения о списке
рассылки. Формат команды:
info <list>
Сведения о списке рассылки
берутся из файла list.info,
который находится в каталоге lists.
Команда intro
применяется для выдачи текстового
сообщения, которое направляется новым
членам списка рассылки. Формат этой команды:
intro <list>
Команда lists
применяется для выдачи перечня всех
доступных на сервере Majordomo списков рассылки.
Формат команды следующий:
lists
Команда help
позволяет получить список всех доступных
для пользователя команд Majordomo.
Команда end
используется для указания Majordomo прекратить
обработку команд в сообщениях. Эта команда
применяется главным образом при появлении
дополнительного текста в конце почтового
сообщения (например, при использовании
почтовой программы, генерирующей блок
подписи в нижней части сообщения). Команда end
задается в отдельной строке в конце
сообщения, содержащего команды.
Для управления списком рассылки
для владельцев списков рассылки разработан
широкий набор команд. Все команды задаются
в форме обычных сообщений электронной
почты, посылаемых в список рассылки с
префиксом -request.
Благодаря этому намного упрощается задача
администрирования списка рассылки, так как
любой пользователь, имеющий доступ к
электронной почте, может управлять списком
рассылки практически из любой точки
земного шара. Однако это не исключает и
возможности физического контакта
владельца списка рассылки с сервером
списков рассылки. К тому же владелец списка
рассылки не нуждается в специальной
учетной записи на сервере, где
обслуживается список рассылки. В этом
разделе мы детально рассмотрим команды,
доступные владельцу списка рассылки.
Команда approve
используется только в закрытых списках
рассылки для подтверждения подписки от
новых членов списка рассылки. Формат
команды:
approve password subscribe/unsubscribesubscribe/unsubscribe <list> <address>,
где password
— пароль администратора списка рассылки, subscribe/unsubscribesubscribe/
— действие, требующее подтверждения, list
— имя списка рассылки и address
— адрес электронной почты, который должен
быть подтвержден.
Команда config
используется для получения копии файла
конфигурации списка рассылки list.config.
Формат этой команды следующий:
config <list> password
С помощью команды mkdigest
создаются дайджесты списков рассылки.
Дайджесты можно создавать по мере
необходимости, их количество не ограничено
и зависит лишь от наличия свободного
дискового пространства на сервере. Формат
этой команды следующий:
mkdigest
<list> password
Если список рассылки создает
большой трафик в сети, то целесообразно
более часто создавать дайджесты списка
рассылки (например, несколько раз в день).
Команда mkdigest
заставляет Majordomo создавать новый дайджест.
Команда newconfig
применяется для создания нового файла
конфигурации списка рассылки с заданными
параметрами. Формат команды следующий:
newconfig
<list> password
За этой командой должен следовать новый текстовый файл конфигурации. Программа Majordomo заменит существующий файл конфигурации на новый и автоматически перестроит свою работу в соответствии с новыми параметрами. Таким образом, владелец списка рассылки, , послав одно обычное почтовое сообщение, может с помощью этой команды полностью изменить конфигурацию списка рассылки. При удаленном управлении списком рассылки эта функция просто незаменима.
Команда newinfo
используется для внесения изменений по
электронной почте в файл list.info.
Формат этой команды таков:
newinfo <list>
password
За командой newinfo
должен следовать новый информационный
файл. Программа Majordomo при его получении
заменит старый файл list.info на новый. Это еще одна полезная
функция для удаленного администрирования.
Команда passwd
применяется для изменения пароля. Формат
команды passwd
следующий:
passwd <list>
old-passwd new-passwd
Эта команда может ввести вас в
заблуждение. Дело в том, что обычно пароль
списка рассылки хранится в файле list.conf,
который можно изменить с помощью команды newconfig.
Если же вы не хотите посылать новый файл
конфигурации, то в качестве альтернативы
можете использовать команду passwd,
с помощью которой изменяется только пароль.
Однако эта команда не изменяет пароль,
содержащийся в файле конфигурации.
Создается лишь новый файл list.passwd,
где и хранится новый пароль. Если же пароль
в файле конфигурации не совпадает с новым
паролем в этом файле, то они оба считаются
равноправными и принимаются списком
рассылки.
Команда writeconfig
используется для переформатирования
существующего файла конфигурации в
исходный формат. Формат этой команды
следующий:
writeconfig
<list> password
Эта команда применяется в тех
случаях, когда файл конфигурации
безнадежно испорчен и его не удалось
восстановить другими средствами. Иногда
это бывает при ошибочном применении
команды newconfig. С
помощью команды writeconfig
предпринимается попытка восстановить
исходный формат файла конфигурации списка
рассылки.
Одна из дополнительных функций почтовый серверов — ведение списков рассылки. Списки рассылки могут обслуживать большое количество пользователей, доставляя им одновременно одинаковые сообщения. Для платформы Linux существует программный пакет Majordomo, в котором реализованы функции сервера списков рассылки. Программа Majordomo может обслуживать на одном почтовом сервере несколько списков рассылки. Списки рассылки могут быть открытыми немодерируемыми или закрытыми (с ограничениями подписки). Для облегчения работы в списках рассылки предусмотрено формирование дайджестов (кратких подборок сообщений за определенный интервал времени) и архивов сообщений. Программа Majordomo также предоставляет возможности удаленного управления списками рассылки, поэтому владелец списка рассылки не нуждается в учетной записи непосредственно на сервере списков рассылки. Команды пользователей списков рассылки достаточно просты; с их помощью можно осуществить подписку, оформить отказ от подписки и послать сообщения в список рассылки без какой-либо специальной подготовки.
В этой лекции
В предыдущей лекции
обсуждалась организация и
функционирование почтовых псевдонимов.
Одной из функций почтовых псевдонимов
является организация простых списков
рассылки — когда сообщение, принятое на
один адрес электронной почты тиражируется
и рассылается по еще нескольким адресам.
Хотя это довольно полезная функция файла aliases,
на самом деле списки рассылки, к которым
привыкло большинство пользователей сети
Internet, обладают намного более мощными
возможностями. В этой лекции обсуждаются
вопросы организации полнофункциональной
системы списков рассылки на базе почтового
сервера под управлением ОС Linux. В такой
системе обеспечивается поддержка
нескольких списков рассылки, а также
дополнительные функции администрирования
для локальных и удаленных пользователей
электронной почты.
Вероятно, вы уже подписывались на какие-либо списки рассылки и имеете общее представление о них. Если вам приходилось хотя бы один раз посылать сообщение в список рассылки со словом subscribe (англ.— подписаться) в теле сообщения, то вы, очевидно уже работаете с одной из служб списков рассылки. Возможность подписки и отказа от подписки на тот или иной список рассылки — одна из функций полноценного сервера списков рассылки. В этой лекции рассматриваются основные функции, которые поддерживаются практически всеми серверами списков рассылки.
Желая стать членом какого-либо списка рассылки, вы прежде всего должны послать сообщение с просьбой о подписке на данный список рассылки. При обслуживании запросов на подписку сервер списков рассылки может использовать несколько различных параметров.
Подписаться на открытый список рассылки может любой желающий. При этом подлинность адреса электронной почты не проверяется. Это простейший, с точки зрения администрирования, способ организации списков рассылки. Однако здесь имеется один серьезный недостаток. При таком способе построения списков рассылки предполагается, что адрес электронной почты, с которого поступил запрос на подписку, принадлежит одному человеку. Иногда такое заблуждение может дорого обойтись: вы можете столкнуться с ситуацией, когда подписавшиеся на ваш список рассылки люди даже не подозревают об этом.
Для решения подобной проблемы в большинстве программ, реализующих функции сервера списков рассылки, при организации открытых списков рассылки требуется подтверждение при подписке на тот или иной список рассылки. При поступлении на сервер запроса на подписку он отправляет обратно сообщение с просьбой подтвердить этот запрос. Часто, чтобы избежать подделки сообщения, подтверждающего подписку, используется специальный идентификационный код. После получения подтверждения о подписке адрес электронной почты включается в список рассылки.
Все запросы на подписку в закрытый список рассылки поступают на специальный почтовый адрес, так называемого владельца списка рассылки. Новые адреса не включаются в список рассылки до тех пор, пока его владелец не подтвердит право на подписку того или иного пользователя. Владелец списка рассылки полностью контролирует числящихся в этом списке пользователей.
Пользователи могут посылать сообщения в список рассылки, после чего они рассылаются всем остальным подписчикам этого списка. В немодерируемых списках рассылки не проверяются содержание и другие параметры сообщений. Любой подписчик может послать какое угодно сообщение, и оно автоматически будет разослано всем остальным подписчикам данного списка рассылки.
Модерируемые списки рассылки часто смущают владельцев списков, но иногда требуется контролировать содержание сообщений, прежде чем поместить их в список рассылки. Модерируемые списки рассылки позволяют владельцам просматривать все сообщения перед отправкой их другим пользователям. Если по каким-либо причинам владелец списка рассылки не хочет рассылать сообщение, то он может исключить его из списка рассылки. Если же содержание сообщения соответствует всем критериям, то оно пересылается в список рассылки обычным порядком. Очевидно, что такой способ организации списков рассылки создает дополнительную работу владельцам списков рассылки. Однако иногда, в зависимости от тематики и аудитории, для которой предназначен тот или иной список рассылки, это бывает необходимо.
Большинство программных пакетов, реализующих функции сервера списков рассылки, предлагают довольно полезную функцию — удаленное управление списками рассылки. Это позволяет владельцу того или иного списка рассылки создавать специальный пароль доступа к функциям администрирования списка рассылки. Получив доступ к административным функциям, владелец списка рассылки с помощью специальных сообщений, посылаемых по электронной почте, может управлять работой сервера списков рассылки. Ввиду того что все управление сервером списков рассылки можно выполнять по электронной почте, владелец списка рассылки может находиться в любой точке земного шара. Единственное условие для администрирования — наличие доступа к электронной почте. Таким образом, осуществляется удаленное управление списками рассылки.
Каждый список рассылки имеет отдельный файл конфигурации, который обслуживается владельцем списка рассылки. С помощью удаленного администрирования вы можете изменить конфигурацию списка рассылки — открытый или закрытый, модерируемый и немодерируемый. Все эти манипуляции можно выполнить, находясь за тысячи километров от сервера списков рассылки.
Серверы списков рассылки, как правило, формируют также дайджесты принятых сообщений. Сервер списков рассылки можно настроить для ежедневных, еженедельных и ежемесячных дайджестов сообщений. Пользователь может запросить получение через список рассылки дайджестов сообщений, а не самих сообщений. Дайджест представляет собой выдержку из сообщений, распространяющихся по списку рассылки. Иногда удобней получать в конце рабочего дня большое сообщение, содержащее дайджест, чем в течение всего дня получать много коротких сообщений. Однако сообщения, чувствительные ко времени (например, требующие немедленного ответа) не могут включаться в дайджесты. Дело в том, что такие дайджесты будут содержать устаревшую информацию.
Архивы представляют собой файлы, содержащие все переданные сообщения. Владелец списка рассылки может определить интервал времени, через который содержимое архивов будет обновляться, — ежедневно, еженедельно, ежемесячно или раз в год. Все сообщения, отправленные в список рассылки в установленный период времени, также добавляются в файл архива. Новые члены списка рассылки должны иметь возможность доступа к архивам сообщений. Для этого на сервере списков рассылки можно создавать списки архивных файлов, которые пользователи могут затем запросить по электронной почте.
Одним из наиболее популярных
пакетов является программный пакет Majordomo,
написанный Брентом Чепменом (Brent Chapman).
Программа Majordomo реализует функции сервера
списков рассылки, в котором поддерживаются
все возможности списков рассылки,
описанные в предыдущем разделе. Этот
программный пакет представляет собой набор
программ на языке Perl (используемом также
для управления сообщениями в файле aliases ),
файлов конфигурации и каталогов, в которых
находятся списки рассылки, дайджесты и
архивы.
Установка программы Majordomo на почтовом сервере под управлением ОС Linux требует минимальных усилий со стороны администратора. Понадобится лишь настроить соответствующим образом программу sendmail и убедиться в надежности защиты почтовой системы от атак извне. В этом разделе описаны шаги, которые нужно предпринять для установки и настройки сервера списков рассылки под управлением программы Majordomo.
Некоторые дистрибутивы ОС Linux включают в себя бинарный пакет с Majordomo. В дистрибутиве Caldera OpenLinux имеется уже готовый к установке RPM-файл с программой Majordomo.
Предупреждение
Предупреждаем пользователей OpenLinux 2.2 об ошибке в программе Majordomo, поставляемой с этой версией. Если вы используете OpenLinux версии 2.2, не пытайтесь установить RPM-файл с Majordomo, поставляемый на CD. Исправленная версия этого файла может быть получена с Web-сайта компании Caldera по адресу: http://www.calderasystems.com.
Если в имеющейся у вас версии ОС Linux отсутствует бинарный файл с программой Majordomo или вы хотите получить последнюю его версию, это можно сделать через сеть Internet. На большинстве серверов в Internet, посвященных поддержке различных UNIX и Linux платформ, можно найти дистрибутив программы Majordomo. На момент написания книги официальным распространением и поддержкой программы Majordomo занималась ассоциация Great Circle Associates. Ее Web-сайт находится по адресу: http://www.greatcircle.com/majordomo/.
Соответственно, FTP-сервер, с
которого можно получить различное
программное обеспечение, — ftp.greatcircle.com.
Интересующее нас программное обеспечение
находится на нем в каталоге /pub/majordomo.
Последняя версия программы Majordomo всегда
содержится в файле majordomo.tar.gz
(на данный момент — 1.94.4). При получении
этого файла по FTP не забудьте включить режим BINARY.
Загрузив программу через Internet, можно приступить к ее установке на сервере. Ввиду того что программа Majordomo распространяется в исходных кодах, для ее установки вам понадобится компилятор языка С. Установка Majordomo производится в несколько этапов.
Для обеспечения безопасности
почтовой системы в целом программу Majordomo
следует устанавливать с использованием
отдельной учетной записи. В противном
случае программы на языке Perl будут
запускаться от имени пользователя root,
что повысит уязвимость вашей системы. Новая
учетная запись должна входить в группу,
имеющую доверительные отношения с
программой sendmail, так как она должна
взаимодействовать с ней. Определить, какие
группы имеют доверительные отношения с
sendmail, можно по файлу конфигурации /etc/sendmail.cf.
В нем обратите внимание на строки 'T'.
В листинге 18.1 приведены соответствующие
строки для ОС Mandrake Linux 6.0.
1 ###################### 2 # Trusted users # 3 ###################### 4 5 # this is equivalent to setting class "t" 6 #Ft/etc/sencimail.ct 7 Troot 8 Tdaemon 9 Tuucp
В листинге 18.1 показаны
доверенные пользователи на почтовом
сервере под управлением ОС Linux для
программы sendmail. Как видите, в строке 6
программе sendmail может быть указано
считывать доверенных пользователей из
файла /etc/sendmail.ct.
Однако в данном случае на сервере
доверительные отношения с программой sendmail
имеют группы root, daemon
и uucp.
В этом примере при установке
Majordomo использованы группа daemon
и идентификатор пользователя majordomo.
Файл с программой Majordomo копируется в
рабочий каталог Majordomo. Чтобы извлечь
программу из архива, наберите в командной
строке:
tar -zxvf
majordomo.tar.gz
В созданный с помощью этой команды подкаталог будет развернут исходный код Majordomo. Затем необходимо изменить Makefile в соответствии с требованиями к конкретной системе.
В Makefile отображаются, как правило, все параметры, с которыми будет работать Majordomo после компиляции. В листинге 18.2 представлен фрагмент Makefile.
1 #$Modified: Wed Aug 27 17:52:25 1997 by cwilson $ 2 # 3 # $Source: /sources/cvsrepos/majordomo/Makefile,v $ 4 # $Revision: 1.63 $ 5 # $Date: 1997/08/27 15:56:21 $ 6 # $Header: /sources/cvsrepos/majordomo/Makefile,v 1.63 1997/08/27 15:56:21 7 cwilson Exp $ 8 # 9 10 # This is the Makefile for Majordomo. 11 # 12 #------------- Configure these items --------------# 13 # 14 15 # Put the location of your Perl binary here: 16 PERL = /usr/bin/perl 17 18 # What do you call your C compiler? 19 CC = gcc 20 21 # Where do you want Majordomo to be installed? This CANNOT be the 22 # current directory (where you unpacked the distribution) 23 W_HOME = /usr/local/majordomo 24 25 # Where do you want man pages to be installed? 26 MAN = $(W_HOME)/man 27 28 # You need to have or create a user and group which majordomo will run as. 29 # Enter the numeric UID and GID (not their names!) here: 30 W_USER = 507 31 W_GROUP = 2 32 33 # These set the permissions for all installed files and executables (except 34 # the wrapper), respectively. Some sites may wish to make these more 35 # lenient, or more restrictive. 36 FILE_MODE = 644 37 EXEC_MODE = 755 38 HOME_MODE = 751 39 # If your system is POSIX (e.g. Sun Solaris, SGI Irix 5 and 6, Dec Ultrix 40 # MIPS, BSDI or other 4.4-based BSD, Linux) use the following four lines. 41 # Do not change these values! 42 WRAPPER_OWNER = root 43 WRAPPER_GROUP = $(W_GROUP) 44 WRAPPER_MODE = 4755 45 POSIX = -DPOSIX_UID=$(W_USER) -DPOSIX_GID=$(W_GROUP) 46 # Otherwise, if your system is NOT POSIX (e.g. SunOS 4.x, SGI Irix 4, 47 # HP DomainOS) then comment out the above four lines and uncomment 48 # the following four lines. 49 # WRAPPER_OWNER = $(W_USER) 50 # WRAPPER_GROUP = $(W_GROUP) 51 # WRAPPER_MODE = 6755 52 # POSIX = 53 54 # Define this if the majordomo programs should *also* be run in the same 55 # group as your MTA, usually sendmail. This is rarely needed, but some 56 # MTAs require certain group memberships before allowing the message sende 57 # to be set arbitrarily. 58 # MAIL_GID = numeric_gid_of_MTA 59 60 # This is the environment that (along with LOGNAME and USER inherited from 61 # the parent process, and without the leading "W_" in the variable names) 62 # gets passed to processes run by "wrapper" 63 W_SHELL = /bin/sh 64 W_PATH = /bin:/usr/bin:/usr/ucb 65 W_MAJORDOMO_CF = $(W_HOME)/majordomo.cf 66 67 # A directory for temp files.. 68 TMPDIR = /usr/tmp
Для того чтобы привести работу
Majordomo в соответствие с вашими требованиями,
в листинге 18.2 следует изменить несколько
строк. Так, в строке 16 задается
местонахождение программы Perl, необходимой
для работы Majordomo. Поскольку все сценарии
Majordomo написаны именно на этом языке, то на
сервере нужно установить Perl и указать
программе Majordomo, откуда она сможет вызывать
интерпретатор этого языка. Язык Perl является
одним из наиболее популярных языков
программирования для создания сценариев.
Он написан Лэрри Уоллзом (Larry Walls) и включен в
большинство дистрибутивов ОС Linux. В строке 19
описан компилятор GNU языка С — gcc,
который также входит в большинство версий
ОС Linux.
Кроме компиляторов, нужно также
указать, куда будет устанавливаться Majordomo. В
строке 23 описан рабочий каталог home
для программы Majordomo. Ни в коем случае не
путайте его с рабочим каталогом
пользователя majordomo.
Это абсолютно разные каталоги. Они могли бы
совместить свои функции в одном каталоге,
но намного удобней, когда конфигурационные
файлы и сценарии запуска находятся в разных
каталогах. В качестве рабочего каталога в
данном случае мы решили создать
специальный каталог /usr/local/majordomo.
Его нужно создавать, будучи пользователем root.
Затем можно сменить владельца каталога на
пользователя majordomo,
воспользовавшись командой
chown
majordomo.daemon /usr/local/majordomo
После этого вам придется
заменить majordomo.daemon
на пользователя и группу, от имени которых
производилась установка программы Majordomo.
Таким образом, в Makefile необходимо описать
пользователя majordomo
и группу daemon. В
строках 30 и 31 описываются именно эти
параметры программы Majordomo. Вы можете войти в
систему под именем majordomo
и с помощью команды id
определить текущий идентификатор
пользователя и группы. В приведенном
примере идентификатор пользователя majordomo
— 507, а идентификатор группы daemon
— 2. Помните, что Makefile воспринимает только
числовые значения и не может работать с
текстовыми переменными.
Основной файл конфигурации majordomo.cf
предназначен для управления работой
программы Majordomo при ее установке. Для
создания нового файла конфигурации нужно
скопировать находящийся в каталоге majordomo-1.94.4
файл шаблона sample.cf
в файл majordomo.cf в
том же каталоге. В листинге 18.3 представлен
пример готового файла majordomo.cf.
1 #
2 # A sample configuration file for majordomo. You must read through this
3 # and edit it accordingly!
4 #
5
6 # $whereami -- What machine am I running on?
7 #
8 $whereami = "smallorg.org";
9
10 # $whoami -- Who do users send requests to me as?
11 #
12 $whoami = "Majordomo\@$whereami";
13
14 # $whoami_owner -- Who is the owner of the above, in case of problems?
15 #
16 $whoami_owner = "Majordomo-Owner-\@$whereami";
17
18 # $homedir -- Where can I find my extra .pl files, like majordomo.pl?
19 # the environment variable HOME is set by the wrapper
20 #
21 if ( defined $ENV{"HOME"}) {
22 $homedir = $ENV{"HOME"};
23 } else {
24 $homedir = "/usr/local/majordomo";
25 }
26
27 # $listdir -- Where are the mailing lists?
28 #
29 $listdir = "$homedir/lists";
30
31 # $digest_work_dir -- the parent directory for digest's queue area
32 # Each list must have a subdirectory under this directory in order for
33 # digest to work. E.G. The bblisa list wou.Ki use:
34 # /usr/local/mail/digest/bblisa
35 # as its directory.
36 #
37 $digest_work_dir = "/usr/local/mail/digest";
38
39 # $log - - Where do I write my log?
40 #
41 $log = "$homedir/Log";
В файле majordomo.cf
необходимо описать несколько переменных.
Так, в строке 8 определяется переменная $whereami,
в которой задается обратный адрес для
возврата сообщения. Если программой sendmail на
почтовом сервере используется
преобразование адресов (маскарадинг), то в
качестве обратного адреса выступает
доменное имя, как показано в строке 8. В
противном случае обратный адрес будет
представлять собой полное имя хоста. В
строках 12 и 16 на базе переменной $whereami
описываются переменные $whoami
и $whoami_owner. Их
значения изменять не нужно.
Переменная $homedir,
описанная в строке 24, очень важна для работы
программы Majordomo. Она должна указывать на
рабочий каталог программы Majordomo, который
указан в Makefile. Именно в этом каталоге Majordomo
будет искать сценарии запуска на языке Perl
при обработке сообщений из списка рассылки.
В строке 29 описывается другая переменная — $listdir.
В ней указывается, где программа Majordomo
хранит информацию для списков рассылки. По
умолчанию для этой цели используется
подкаталог lists в
рабочем каталоге Majordomo.
В строке 37 описывается
переменная $digest_work_dir.
С ее помощью определяется местонахождение
файлов $log
в строке 41. Программа Majordomo в файле отчета
ведет учет всех операций, выполненных со
списком рассылки,. Местоположение этого
файла определяется переменной $log
и может быть изменено в зависимости от
требований вашего дистрибутива ОС Linux,
например, на /var/log/majordomo.log.
После отладки файлов Makefile и majordomo.cf
с помощью утилиты GNU вы можете приступить к
созданию выполняемых файлов для Majordomo. Для
этого выполните следующее.
make
wrapper для проверки правильности
работы программы распаковки wrapper.majordomo
задайте make install
для установки сценариев и выполняемых
файлов в рабочий каталог Majordomo.root
задайте make
install-wrapper, чтобы установить программу
wrapper с идентификатором root.Теперь вы можете запустить
программу wrapper и проверить правильность
установки Majordomo. Для этого войдите в систему
как обычный пользователь без каких-либо
специальных полномочий и измените рабочий
каталог программы Majordomo (в нашем случае /usr/local/majordomo ).
Затем, находясь в этом каталоге, задайте
команду:
./wrapper config-test
С помощью этой команды запускается программа wrapper и производится тестирование конфигурации. В листинге 18.4 показан фрагмент сообщения, генерируемого программой wrapper.
1 ---------------- end of tests ----------------------- 2 3 4 Nothing bad found! Majordomo _should_ work correctly. 5 6 If it doesn't, check your configuration file 7 (/usr/local/majordomo/majordomo.cf) 8 closely, and if it still looks okay, consider asking the majordomo-users 9 mailing list at "majordomo-users@greatcircle.com" for assistance. Be sure 10 and fully specify what your problems are, and what type of machine (and 11 operating system) you are using. 12 13 Enjoy!
В листинге 18.4 представлено
несколько последних строк из сообщения,
генерируемого при выполнении config-test.
Как видите, приведенная нами конфигурации
Majordomo успешно прошла тестирование.
Закончив установку программного
пакета Majordomo, следует соответствующим
образом сконфигурировать программу sendmail,
чтобы она смогла распознавать списки
рассылки. Программа Majordomo может
обрабатывать списки рассылки с помощью
файла aliases (см.
подробнее о нем лекцию 17, "Почтовые
псевдонимы и преобразование адресов"). Для
типовой конфигурации Majordomo в файл /etc/aliases
нужно добавить несколько строк,
приведенных в листинге 18.5.
1 # Majordomo aliases 2 majordomo: "|/usr/local/majordomo/wrapper majordomo" 3 owner-majordomo: rich, 4 majordomo-owner: rich
После внесения каких-либо
изменений в файл aliases
необходимо запускать программу newaliases,
чтобы они были восприняты программой sendmail.
В строке 2 листинга 18.5 представлен
псевдоним majordomo,
который указывает на программу wrapper с
параметром majordomo.
Таким образом программа sendmail
инструктируется о запуске программы wrapper
при приеме сообщения.
Существует один секрет,
используемый при запуске программы wrapper с
помощью псевдонимов. Дело в том, что на
некоторых системах в sendmail используется
настройка smrsh,
описанная в лекции 11. С ее помощью запуск
программ из оболочки ограничивается одним
специальным каталогом, владельцем которого
является пользователь root.
Если у вас эта настройка sendmail используется,
то в ней также будет указан и каталог, куда
следует помещать файлы программ, которые
sendmail может запускать самостоятельно. В Mandrake
Linux 6.0 это каталог /etc/smrsh.
Если скопировать программу wrapper из ее
рабочего каталога (в нашем случае это
каталог /usr/local/majordomo/wrapper )
в каталог /etc/smrsh,
то программа sendmail сможет запускать ее.
В строках 3 и 4 описаны два псевдонима. Если, работая со списком рассылки, участник этого списка сталкивается с какими-либо проблемами, он может направить письмо его владельцу с просьбой о помощи, совете и т.п. Эти адреса указывают на реальный адрес электронной почты владельца списка рассылки.
Чтобы проверить, правильно ли
установлена Majordomo, создайте тестовый список
рассылки. Вначале создайте фиктивный файл
списка рассылки в соответствующем каталоге
Majordomo, согласно файлу конфигурации majordomo.cf.
В нашем примере он должен находиться в
каталоге /usr/local/majordomo/lists.
Создать тестовый файл вы можете с помощью
команды
touch /usr/local/majordomo/lists/test
Затем можно послать псевдониму majordomo
команду 'lists' —
вам будет выдан список всех доступных в
данный момент списков рассылки. В листинге
18.6 приведен пример такого тестирования.
1 [rich@shadrach rich]$ echo 'lists' | mail -v majordomo 2 majordomo... aliased to "|/usr/local/majordomo/wrapper majordomo" 3 "|/usr/local/majordomo/wrapper majordomo"... Connecting to prog... 4 "|/usr/local/majordomo/wrapper majordomo"... Sent 5 [rich@shadrach rlch]$ mail 6 Mail version 8.1 6/6/93. Type ? for help. 7 "/var/spool/mail/pich": 1 message 1 new 8 >N 1 Majordomo@smallorg.org Thu Nov 18 18:51 23/736 "Majordomo results" 9 10 Message 1: 11 From Majordomo-Owner@smallorg.org Thu Nov 18 18:51:35 1999 12 Date: Thu, 18 Nov 1999 18:51:34 -0500 13 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to 14 Majordomo-Owner@smallorg.org using -f 15 To: rich@smallorg.org 16 From: Majordomo@smallorg.org 17 Subject: Majordomo results 18 Reply-To: Majordomo@smallorg.org 20 -- 21 22 >>>> lists 23 Majordomo@smallorg.org serves the following lists: 24 25 test 26 27 Use the 'info <list>' command to get more information 28 about a specific list. 29 30
В строке 1 листинга 18.6 приведен
пример использования команды 'lists'
для Majordomo. Параметр командной строки -v
позволяет запуск программы mail в режиме
высокой детализации, при котором
отображается каждое выполняемое действие.
В строках 2–4 представлены события,
происходящие с сообщением. В строке 2
показано, что программа sendmail обнаружила
псевдоним. В строке 3 она попыталась
соединиться с программой wrapper. И в строке 4
показано, что программа sendmail успешно
передала сообщение программе wrapper. После
того как сообщение в список рассылки
отправлено, можно проверить почтовый ящик
отправителя на предмет получения ответа от
Majordomo. В строках 5–30 представлен ответ
программы Majordomo на отправленное нами
сообщение. Из него ясно, что на сервере
списков рассылки в настоящее время
доступен один список рассылки. Естественно,
что это не совсем соответствует
действительности, так как мы полностью не
сконфигурировали списки рассылки.
И последнее, в чем следует
убедиться при проверке работы Majordomo, —
занесены ли посланные команды в файл отчета.
Для этого проверьте файл отчета Majordomo /usr/local/majordomo/log.
В нем должна появиться такая строка:
Nov 18 18:51:34 smallorg.org majordomo[28128] {Rich <rich@shadrach.smallorg.org>} lists
В файле отчета фиксируется время, адрес электронной почты и введенная команда. Регулярно просматривая файл отчета, вы сможете выявить попытки несанкционированного использования сервера списков рассылки.
После установки программы Majordomo
вы можете приступить к созданию различных
списков рассылки. Для этого вначале
необходимо создать пустой файл, в котором
будут храниться адреса электронной почты
участников списка рассылки. Имя этого файла
должно совпадать с названием списка
рассылки. Мы рассмотрим это на примере
списка рассылки под названием officenews.
После того как необходимый файл создан,
следует убедиться в наличии правильного
набора прав доступа к нему. Программа sendmail
может не принимать для обработки список
псевдонимов, группе которых разрешена
запись в файл или в каталог, где они
находятся. Ниже приведены команды для
создания файла и изменения прав доступа:
touch /usr/local/majordomo/lists/officenews chmod 755 /usr/local/majordomo/lists chmod 644 /usr/local/majordomo/lists/officenews
Далее создайте для списка
рассылки информационный файл. Программа
Majordomo использует информационный файл
списка рассылки для предоставления
сведений о нем по требованию кого-либо из
пользователей или при подписке на список
рассылки. Информационный файл обычно
создается в виде list.info,
где list — имя
списка рассылки. В нашем примере создается
информационный файл списка рассылки /usr/local/majordomo/officenews.info,
где содержится текстовое описание списка
рассылки.
Для каждого списка рассылки
необходимо создавать несколько записей в
файле aliases. Их
количество зависит от функций, которые
должен поддерживать тот или иной список
рассылки. В табл. 18.1 приведены псевдонимы,
которые могут использоваться для списка
рассылки с именем list.
| Псевдоним | Описание |
|---|---|
list |
Псевдоним списка рассылки |
list-outgoing |
Реальный список для подписчиков |
owner-list |
Администратор списка рассылки |
list-request |
Адрес для специальных запросов Majordomo |
list-approval |
Персона, проверяющая содержание сообщений в модерируемых списках рассылки (модератор) |
list-digest |
Адрес для дайджестов списков рассылки |
list-digest-request |
Адрес для запросов на отправку дайджестов |
В листинге 18.7 приведен пример
записей в файле aliases
для списка рассылки officenews.
Это список рассылки, стандартный без всяких
излишеств. Он открытый и в нем не
поддерживаются рассылка дайджестов и
ведение архивов сообщений.
1 #officenews mail list entries 2 officenews: "|/usr/local/majordomo/wrapper resend -l officenews officenews-list" 3 officenews-list: :include:/usr/local/majorodomo/lists/officenews 4 owner-officenews: rich, 5 officenews-owner: rich 6 officenews-approval: officenews-owner 7 officenews-request: "|/usr/local/majordomo/wrapper majordomo -l officenews"
При добавлении новых псевдонимов
не забывайте запускать программу newaliases
с правами пользователя root.
С этого момента список рассылки уже может
функционировать, но его еще нужно настроить,
чтобы он работал в соответствии с вашими
требованиями. Вы можете создать файл
конфигурации, отправив в список рассылки
письмо с локального или удаленного
почтового сервера. Программа Majordomo
автоматически создаст файл конфигурации и
отправит его в ответ на ваше письмо. В
листинге 18.8 представлен пример такой
операции и фрагмент возвращенного в ответ
сообщения.
1 [rich@shadrach rich]$ mail officenews-request 2 Subject: 3 config officenews officenews.admin 4 . 5 Cc: 6 [rich@shadrach rich]$ mail 7 Mail version 8.1 6/6/93. Type ? for help. 8 "/var/spool/mail/rich" : 1 message 1 new 9 >N 1 Majordomo@shadrach.s Thu Nov 18 16:25 400/16764 "Majordomo results" 10 1 11 From Majordomo-Owner@shadrach.smallorg.org Thu Nov 18 16:06:05 1999 12 Return-Path: <Majordomo-Owner@shadrach.smallorg.org> 13 Received: (from majordomo@localhost) 14 by shadrach.smallorg.org (8.9.3/8.9.3) id QAA28433; 15 Thu, 18 Nov 1999 19:06:05 -0500 16 Date: Thu, 18 Nov 1999 19:06:05 -0500 17 Message-Id: <199911182106.QAA28433@shadrach.smallorg.org> 18 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to Majordomo-Owner@smallorg.org using -19 f 20 To: rich@smallorg.org 21 From: Majordomo@smallorg.org 22 Subject: Majordomo results 23 Reply-To: Majordomo@smallorg.org 24 Status: R 25 26 -- 27 28 >>>> config officenews officenews.admin 29 admin_passwd = officenews.admin 30 administrivia = yes 31 advertise << END 32 announcements = yes 33 approve_passwd = officenews.pass 34 archive_dir = 35 comments << END 36 date_info = yes 37 date_intro = yes 38 debug = no 39 description = 40 digest_archive = 41 digest_issue = 1 42 digest_maxdays = 43 digest_maxlines = 44 digest_name = officenews 45 digest_rm_footer = 46 digest_rm_fronter = 47 digest_volume = 1 48 digest_work_dir = 49 get_access = list 50 index_access = open 51 info_access = open 52 intro_access = list 53 maxlength = 40000 54 message_footer << END 55 message_fronter << END 56 message_headers << END 57 moderate = no 58 moderator = 59 mungedomain = no 60 noadvertise << END 61 precedence = bulk 62 purge_received = no 63 reply_to = 64 resend_host = 65 restrict_post = 66 sender = owner-officenews 67 strip = yes 68 subject_prefix = 69 subscribe_policy = open+confirm 70 taboo_body << END 71 taboo_headers << END 72 unsubscribe_policy = open 73 welcome = yes 74 which_access = open 75 who_access = open
В строке 1 листинга 18.8 вы видите,
как владелец списка рассылки посылает
почтовое сообщение на адрес officenews-request.
Все команды списка рассылки будут
пересылаться с приставкой к названию
списка рассылки. Как правило, любое
сообщение, посланное в список рассылки
будет автоматически разослано всем его
подписчикам. Однако в пакете Majordomo имеется
специальная программа resend,
с помощью которой вы можете просматривать
содержимое сообщений и игнорировать те из
них, которые содержат команды Majordomo и
посланы в список рассылки по ошибке. Таким
образом, подписчики списка рассылки не
будут раздражаться, получая сообщения,
содержащие команды типа subscribe
и т.п.
В строке 3 показан формат запроса
файла конфигурации для списка рассылки.
Третий параметр в этой строке представляет
собой пароль администратора списка
рассылки. По умолчанию пароль для любого из
списков принят как list.admin,
где list — имя
списка рассылки. Получив такого рода
сообщение, Majordomo посылает ответное, в текст
которого включает созданный ею файл
конфигурации. Файл конфигурации обычно
хранится в каталоге lists
в виде lists.config, где lists — имя списка
рассылки.
Далее в строках 29–75 показаны
различные переменные файла конфигурации,
которые можно изменять при необходимости. В
листинге были опущены пояснительные
комментарии к переменным файла
конфигурации. Значения самих параметров вы
можете узнать из реального файла
конфигурации, где эти комментарии
приводятся. Чтобы внести изменения в
конфигурацию, нужно сохранить это
сообщение, изменить нужный параметр и с
помощью команды newconfig
послать новый файл конфигурации в список
рассылки. Первая строка в таким сообщении
должна быть следующей:
newconfig list adminpasswd,
где list
— имя списка рассылки, а adminpasswd
— пароль администратора списка рассылки.
За этой строкой далее следует обычный файл
конфигурации с внесенными вами изменениями.
В листинге 18.9 представлены переменные, которые чаще всего модифицируются в файле конфигурации.
1 admin_passwd = newpassword 2 approve_passwd = newpasswd 3 description = A mail list used to distribute general office news 4 subscribe_policy = open 5 who_access = list
Большинство других переменных в
стандартных списках рассылки будут
работать нормально со значениями,
заданными по умолчанию. Не забывайте для
нового списка рассылки менять пароль
администратора. В строке 4 листинга 18.9
приведено также изменение типа подписки на
список рассылки. По умолчанию задается тип
подписки open+confirm (открытая
с подтверждением). То есть участники списка
рассылки при подписке на него должны
подтвердить свой запрос на подписку,
ответив на специальное сообщение от Majordomo. В
нашем примере используется открытая
подписка на список рассылки без
подтверждения, что позволяет всем
пользователям свободно на него
подписываться. Если же по списку рассылки
предполагается распространение важной для
компании информации, составляющей
коммерческую тайну и т.п., вы можете
воспользоваться закрытым списком рассылки
с утверждением каждого участника рассылки
владельцем списка. В строке 5 вводится
ограничение на выдачу команды 'who',
с помощью которой отображается список
участников рассылки. В данном случае этот
круг ограничивается только активными
членами списка рассылки. В листинге 18.10
представлены результаты попытки
использования этой команды не членом
списка рассылки.
1 [melanie@shadrach melanie]$ echo 'who' | mail officenews-request 2 [melanie@shadrach melanie]$ mail 3 Mail version 8.1 6/6/93. Type ? for help. 4 "/var/spool/mail/melanie"; 1 message 1 new 5 >N 1 Majordomo@smallorg.o Thu Nov 20 16;40 20/744 "Majordomo results" 6 7 Message 1: 8 From Majordomo-Owner@smallorg.org Thu Nov 18 20:40:54 1999 9 Date: Thu, 18 Nov 1999 20:40:53 -0500 10 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to Majordomo-Owner@smallorg.org using -f 11 To: melanie@smallorg.org 12 From: Majordomo@smallorg.org 13 Subject: Majordomo results 14 Reply-To: Majordomo@smallorg.org 15 16 -- 17 18 >>>> who 19 **** List 'officenews' is a private list. 20 **** Only members of the list can do a 'who'. 21 **** you [ Melanie <melanie@smallorg.org> ] aren't a member of list 'officenews'. 22 23
В строке 1 листинга 18.10 показано,
как пользователь melanie
посылает серверу списков рассылки команду 'who'
с целью получения списка участников
рассылки. В строках 18–21 вы видите ответ,
полученный melanie
от сервера. Как видите, эта команда может
использоваться только членами списка
рассылки, а melanie
таковым не является. Поэтому сервер списка
рассылки отказал ей в предоставлении
списка пользователей закрытой рассылки.
На этом мы заканчиваем рассмотрение установки и настройки программного пакета Majordomo, который реализует функции сервера списков рассылки. В следующем разделе мы рассмотрим использование сервера списков рассылки клиентами электронной почты.
Для обычных пользователей программа Majordomo облегчает выполнение различных процедур со списками рассылки. Так, подписка, создание сообщений для рассылки и отказ от подписки довольно просто осуществляются любым, даже не очень подготовленным пользователем. Однако имеется и набор более сложных команд для подготовленных пользователей, таких как формирование запросов на получение дайджестов и архивов, а также удаленное управление списками рассылки.
Для того чтобы стать членом
списка рассылки, нужно послать запрос на
подписку. Запросы на подписку посылаются с
префиксом -request
перед именем соответствующего списка
рассылки. Поле Subject:(Тема:)
программой Majordomo игнорируется, поэтому вы
можете оставить его пустым. В теле
сообщения можно указать лишь одну строку со
словом subscribe. В
зависимости от режима работы списка
рассылки вы получите либо подтверждение о
подписке, либо специальное сообщение, на
которое вы должны будете ответить, чтобы
подписка состоялась. В листинге 18.11
приведен пример сеанса подписки на список
рассылки.
1 [ rich@shadrach rich]$ mail officenews-request 2 Subject: 3 subscribe 4 . 5 Cc: 6 [rich@shadrach rich]$ mail 7 Mail version 8.1 6/6/93. Type ? for help. 8 "/var/spool/mail/rich": 3 messages 3 new 9 >N 1 Majordomo@smallorg.o Fri Nov 19 04:42 44/1625 "Welcome to officenews" 10 N 2 Majordomo@smallorg.o Fri Nov 19 04:42 18/696 "SUBSCRIBE officenews " 11 N 3 Majordomo@smallorg.o Fri Nov 19 04:42 18/613 "Majordomo results" 12 13 Message 1 : 14 From owner-officenews@smallorg.org Fri Nov 19 04:42:56 1999 15 Date: Fri, 19 Nov 1999 04:42:56 -0500 16 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to owner-officenews@smallorg.org using -f 17 To: rich@smallorg.org 18 From: Majordomo@smallorg.org 19 Subject: Welcome to officenews 20 Reply-To: Majordomo@smallorg.org 21 22 -- 23 24 Welcome to the officenews mailing list! 25 26 Please save this message for future reference. Thank you. 27 28 If you ever want to remove yourself from this mailing list, 29 you can send mail to <Majordomo@smallorg.org> with the following 30 command in the body of your email message: 31 32 unsubscribe officenews 33 34 or from another account, besides rich@smallorg.org: 35 36 unsubscribe officenews rich@smallorg.org 37 38 If you ever need to get in contact with the owner of the list, 39 (if you have trouble unsubscribing, or have questions about the 40 list itself) send email to <owner-officenews@smallorg.org> . 41 This is the general rule for most mailing lists when you need 42 to contact a human. 43 44 Here's the general information for the list you've subscribed to, 45 in case you don't already have it: 46 47 Welcome to the smallorg.org officenews mail list. 48 49 This mail list is used to help keep you informed about general informatic 50 that is happening in the organization. Please post any announcements to 51 this mail list. Unauthorized use of this mail list is prohibited. 52 53
В строках 1–5 листинга 18.11 вы
видите, как пользователь rich
посылает запрос на подписку на псевдоадрес officenews-request.
Пользователи могут также направлять
запросы и на псевдоним majordomo,
но желательно, чтобы команда предварялась
именем списка рассылки, тогда программа
Majordomo сможет определить, к какому из списков
рассылки она относится. Почтовые сообщения,
посланные в ответ на команду, представлены
в строках 6–11. В строке 11 представлено
сообщение, отправленное программой Majordomo в
ответ на запрос о подписке. В строке 10 вы
видите сообщение, которое направляется
владельцу списка рассылки (которым, кстати,
может быть и сам rich ).
В нем сообщается о том, что на данный список
рассылки был подписан новый пользователь. В
строке 9 представлено возвращаемое
пользователю сообщение, в котором
подтверждается его членство в списке
рассылки. В строках 13–53 полностью приведен
текст этого сообщения. Обратите внимание,
что в строках 28–36 даются подробные
инструкции о механизме отказа от подписки.
В строках 47–51 представлен текст из файла officenews.info,
который был создан для этого списка
рассылки.
На почтовый псевдоним -request
можно посылать несколько команд, которые
требуют определенных действий от сервера
списков рассылки. Все эти команды могут
посылаться пользователями списка рассылки.
Как видно из листинга 18.11, команда subscribe позволяет
новым членам списка рассылки посылать
запрос на подписку. Формат этой команды
следующий:
subscribe <list> [<address>],
где list
— имя списка рассылки, а address
— адрес электронной почты, который вы
хотите добавить в список рассылки. Если же
сообщение с требованием о подписке
посылается на псевдоним list-request,
то параметр list в
этой команде можно опустить. Можно также не
указывать адрес электронной почты ( address ),
включаемый в список рассылки, если вы
хотите, чтобы подписка была оформлена на
адрес, с которого отправлен запрос на
подписку. Параметр адреса электронной
почты включен в команду subscribe
для обеспечения возможности подписки с
любого адреса. Результаты подписки будут
зависеть лишь от организации подписки в
данном списке рассылки.
Команда выполняет действия,
обратные команде subcribe.
По этой команде адрес электронной почты
исключается из списка рассылки. Формат
команды:
unsubscribe <list> [<address>],
где, как и в предыдущей команде,
параметры list и address
являются необязательными.
Команда get
используется для получения файлов через
список рассылки. Формат использования этой
команды следующий:
get <list> filename,
где filename
— файл, который находится в списке рассылки.
Чаще всего эта команда используется при
работе с архивами списков рассылки. Член
списка рассылки может получить файл архива
с помощью команды get,
указав имя архива.
Команда index
используется для выдачи списка файлов,
доступных через список рассылки. Формат
этой команды следующий:
index <list>
Команда index
используется обычно вместе с командой get
при работе с архивами списков рассылки. По
этой команде выдается список файлов
архивов, которые можно запросить через
список рассылки.
С помощью команды which
можно определить в какие списки рассылки на
сервере Majordomo входит указанный адрес
электронной почты. Формат этой команды
следующий:
which [<address>]
Если возникает необходимость
получить информацию об адресе электронной
почты, с которого посылается запрос, то
параметр address
можно не указывать. По этой команде Majordomo
выдает перечень всех списков рассылки, в
которых содержится указанный адрес
электронной почты.
Команда who
используется для получения информации об
активных подписчиках указанного списка
рассылки. Ее формат таков:
who <list>
Как уже отмечалось, работа этой команды может быть ограничена и распространяться только на пользователей того или иного списка рассылки.
Команда info
позволяет получить общие сведения о списке
рассылки. Формат команды:
info <list>
Сведения о списке рассылки
берутся из файла list.info,
который находится в каталоге lists.
Команда intro
применяется для выдачи текстового
сообщения, которое направляется новым
членам списка рассылки. Формат этой команды:
intro <list>
Команда lists
применяется для выдачи перечня всех
доступных на сервере Majordomo списков рассылки.
Формат команды следующий:
lists
Команда help
позволяет получить список всех доступных
для пользователя команд Majordomo.
Команда end
используется для указания Majordomo прекратить
обработку команд в сообщениях. Эта команда
применяется главным образом при появлении
дополнительного текста в конце почтового
сообщения (например, при использовании
почтовой программы, генерирующей блок
подписи в нижней части сообщения). Команда end
задается в отдельной строке в конце
сообщения, содержащего команды.
Для управления списком рассылки
для владельцев списков рассылки разработан
широкий набор команд. Все команды задаются
в форме обычных сообщений электронной
почты, посылаемых в список рассылки с
префиксом -request.
Благодаря этому намного упрощается задача
администрирования списка рассылки, так как
любой пользователь, имеющий доступ к
электронной почте, может управлять списком
рассылки практически из любой точки
земного шара. Однако это не исключает и
возможности физического контакта
владельца списка рассылки с сервером
списков рассылки. К тому же владелец списка
рассылки не нуждается в специальной
учетной записи на сервере, где
обслуживается список рассылки. В этом
разделе мы детально рассмотрим команды,
доступные владельцу списка рассылки.
Команда approve
используется только в закрытых списках
рассылки для подтверждения подписки от
новых членов списка рассылки. Формат
команды:
approve password subscribe/unsubscribesubscribe/unsubscribe <list> <address>,
где password
— пароль администратора списка рассылки, subscribe/unsubscribesubscribe/
— действие, требующее подтверждения, list
— имя списка рассылки и address
— адрес электронной почты, который должен
быть подтвержден.
Команда config
используется для получения копии файла
конфигурации списка рассылки list.config.
Формат этой команды следующий:
config <list> password
С помощью команды mkdigest
создаются дайджесты списков рассылки.
Дайджесты можно создавать по мере
необходимости, их количество не ограничено
и зависит лишь от наличия свободного
дискового пространства на сервере. Формат
этой команды следующий:
mkdigest
<list> password
Если список рассылки создает
большой трафик в сети, то целесообразно
более часто создавать дайджесты списка
рассылки (например, несколько раз в день).
Команда mkdigest
заставляет Majordomo создавать новый дайджест.
Команда newconfig
применяется для создания нового файла
конфигурации списка рассылки с заданными
параметрами. Формат команды следующий:
newconfig
<list> password
За этой командой должен следовать новый текстовый файл конфигурации. Программа Majordomo заменит существующий файл конфигурации на новый и автоматически перестроит свою работу в соответствии с новыми параметрами. Таким образом, владелец списка рассылки, , послав одно обычное почтовое сообщение, может с помощью этой команды полностью изменить конфигурацию списка рассылки. При удаленном управлении списком рассылки эта функция просто незаменима.
Команда newinfo
используется для внесения изменений по
электронной почте в файл list.info.
Формат этой команды таков:
newinfo <list>
password
За командой newinfo
должен следовать новый информационный
файл. Программа Majordomo при его получении
заменит старый файл list.info на новый. Это еще одна полезная
функция для удаленного администрирования.
Команда passwd
применяется для изменения пароля. Формат
команды passwd
следующий:
passwd <list>
old-passwd new-passwd
Эта команда может ввести вас в
заблуждение. Дело в том, что обычно пароль
списка рассылки хранится в файле list.conf,
который можно изменить с помощью команды newconfig.
Если же вы не хотите посылать новый файл
конфигурации, то в качестве альтернативы
можете использовать команду passwd,
с помощью которой изменяется только пароль.
Однако эта команда не изменяет пароль,
содержащийся в файле конфигурации.
Создается лишь новый файл list.passwd,
где и хранится новый пароль. Если же пароль
в файле конфигурации не совпадает с новым
паролем в этом файле, то они оба считаются
равноправными и принимаются списком
рассылки.
Команда writeconfig
используется для переформатирования
существующего файла конфигурации в
исходный формат. Формат этой команды
следующий:
writeconfig
<list> password
Эта команда применяется в тех
случаях, когда файл конфигурации
безнадежно испорчен и его не удалось
восстановить другими средствами. Иногда
это бывает при ошибочном применении
команды newconfig. С
помощью команды writeconfig
предпринимается попытка восстановить
исходный формат файла конфигурации списка
рассылки.
Одна из дополнительных функций почтовый серверов — ведение списков рассылки. Списки рассылки могут обслуживать большое количество пользователей, доставляя им одновременно одинаковые сообщения. Для платформы Linux существует программный пакет Majordomo, в котором реализованы функции сервера списков рассылки. Программа Majordomo может обслуживать на одном почтовом сервере несколько списков рассылки. Списки рассылки могут быть открытыми немодерируемыми или закрытыми (с ограничениями подписки). Для облегчения работы в списках рассылки предусмотрено формирование дайджестов (кратких подборок сообщений за определенный интервал времени) и архивов сообщений. Программа Majordomo также предоставляет возможности удаленного управления списками рассылки, поэтому владелец списка рассылки не нуждается в учетной записи непосредственно на сервере списков рассылки. Команды пользователей списков рассылки достаточно просты; с их помощью можно осуществить подписку, оформить отказ от подписки и послать сообщения в список рассылки без какой-либо специальной подготовки.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.