Опубликован: 21.11.2006 | Доступ: свободный | Студентов: 1666 / 116 | Оценка: 4.09 / 4.00 | Длительность: 38:34:00
Лекция 18:

Списки рассылки

Установка Majordomo

Загрузив программу через Internet, можно приступить к ее установке на сервере. Ввиду того что программа Majordomo распространяется в исходных кодах, для ее установки вам понадобится компилятор языка С. Установка 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. Пример файла /etc/sendmail.cf

В листинге 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

В 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
Листинг 18.2. Фрагмент Makefile для Majordomo

Для того чтобы привести работу 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 воспринимает только числовые значения и не может работать с текстовыми переменными.

Григорий Дроздов
Григорий Дроздов
Россия, Санкт-Петербург, Санкт-Петербургский гуманитарный университет профсоюзов, 2006