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