Рассылка закрыта
При закрытии подписчики были переданы в рассылку "LinuxCenter News Channel: новости Linux" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Linux Gazette на русском
Здравствуйте!
Во-первых, по поводу моего вопроса об имени пользователя в переменной
%U
. Из читателей никто не ответил. Я же, в свою очередь,
проконсультировался у сакраментальных "знакомых, использующих
Samb'у":), и они сказали, что переменная работать будет. Тогда
с раздачей готовых PDF'ок проблем нет: хочешь -- шли по почте, хочешь
-- клади в "хоумник", хочешь -- еще как отмечай для удобства
нахождения пользователем своего "файлА". Вот только по
почте потенциально многомегабайтные вложения слать как-то...
Во-вторых, по поводу предыдущей статьи о "маленьком списке рассылки". Поступило такое предложение:
Можно еще больше упростить решение, по крайней мере для программы sendmail - в файле aliases указать только ссылку на файл, содержащий перечень адресов рассылки, например так-> theproject: :include:/home/linus/theproject.alias в этом случае пользователь linus будет модератором рассылки и может вносить изменения в файл списка рассылки, не заботясь о необходимости активизации изменений в файле aliases в этом случае модератор рассылки может и не обладать административными правами, необходимыми для доступа к файлу aliases и к команде newaliases.
По моему, очень дельное предложение. Интересно, а это "катит" только с sendmail'ом? Или с postfix'ом и exim'ом тоже?
Сегодня продолжение темы организации групповой работы средствами стандартной поставки Linux.
Сергей Скороходов <suralis-s@mtu-net.ru>
Создание веб-архива для списка рассылки
Автор: (C)
Лоренс Тео [Lawrence Teo]
Перевод: (C)
Сергей Скороходов
1. Введение
В этой статье я опишу, как настроить веб-архив для списка рассылки. Эта статья "подхватывает эстафету" там, где я заканчиваю предыдущую (в этом выпуске Linux Gazette): Как легко и быстро настроить почтовый список рассылки. Я очень рекомендую прочесть сначала ее (если Вы, конечно, еще этого не сделали:). Контекст и содержание данной статьи берут свое начало в методиках, описанных в предыдущей.
1.1 Настройка списка рассылки
Для начала я кратко опишу обустройство почтового списка рассылки, который используется в качестве примера. Если Вы читали предыдущую статью, то все покажется знакомым.
Предположим, у нас есть список рассылки под названием theproject@mybox.example.com, который работает на Linux-машине с именем mybox.example.com. На этот список подписались адресаты linus@mybox.example.com, alan@example.net и esr@example.org, т.е. мы внесли их в файл псевдонимов [aliases] почтового сервера (или Mail Transfer Agent'а). В зависимости от того, каким дистрибутивом мы пользуемся, этот файл обычно называется /etc/mail/aliases или /etc/aliases. Запись в файле псевдонимов выглядит так:
theproject: linus, alan@example.net, esr@example.org
Таким образом, как только сообщение электронной почты поступает на адрес theproject@mybox.example.com, оно автоматически пересылается по адресам linux@mybox.example.com, alan@example.net и esr@example.org.
2. Создание веб-архива
Прежде чем начать излагать инструкции по созданию веб-архива, я объясню, что мы собственно собираемся архивировать. А именно, мы собираемся предоставить сайт для членов нашей рабочей группы, на котором будет расположен архив списка рассылки. Например, можно держать его на http://mybox.example.com/theproject/ и разрешить доступ к нему для всех членов рабочей группы.
Архив на веб-сайте облегчает и делает удобнее просмотр и поиск того, что обсуждалось ранее. Он может также выступать как централизованное хранилище документов и других почтовых вложений. И, наконец, он может оказаться резервной копией на тот несчастный случай, если Вы потеряете Вашу электронную почту (надеюсь, это никогда не случится)!
Для того, чтобы создать веб-архив для списка рассылки, Вам потребуется:
- Веб-сервер Apache. Можно, конечно, использовать и другой веб-сервер. Apache, однако, самый распространенный веб-сервер, который (насколько мне известно) по умолчанию используется в большинстве дистрибутивово Linux, кроме того, я знаком с ним лучше всего. В нашем примере используется apache 1.3.20.
- Hypermail. Hypermail -- это изящная программа для генерации почтовых веб-архивов из UNIX mailbox файла. Хватается на http://www.hypermail.org/. Для примера в статье я буду пользоваться hypermail 2.1.2.
- cron. cron -- это программа, выполняет задания по предварительно составленному расписанию. Во всех дистрибутивах Linux cron должен быть установлен по умолчанию (если я найду дистрибутив без cron, то буду шокирован!). С помощью cron'а мы будем переодически обновлять наш архив.
Сперва проверим, запущен ли веб-сервер. И опять, для воспользуемся для этого командой netstat:
lteo@mybox:~$ netstat -a | grep www tcp 0 0 *:www *:* LISTEN
Если система отвечает такой строкой, то очень вероятно:), что веб-сервер уже загружен. Если же нет, то его можно запустить командой /etc/init.d/apache start на Debian, на RedHat и ей подобных нужно выполнить такую же команду или /etc/rc.d/init.d/httpd start (зависит от конкретного дистрибутива). На Slackware "испустите" команду /etc/rc.d/rc.httpd start.
2.1 Установка hypermail
После скачивания "тарболла" hypermail, продолжите установку в соответсвии с инструкциями в файле README. Установка проходит через достаточно стандартные этапы. Если Вы спешите, то следующие команды должны сработать (я имею в виду hypermail 2.1.2, Вам надо подставить номер версии, скачанной Вами):
root@mybox:~# tar zxf hypermail-2.1.2.tgz root@mybox:~# cd hypermail-2.1.2 root@mybox:~/hypermail-2.1.2# ./configure root@mybox:~/hypermail-2.1.2# make root@mybox:~/hypermail-2.1.2# make install
2.2 Создание специальной учетной записи пользователя
Теперь нужно создать в нашей системе учетную запись для "подставного" пользователя. Мы зарегистрируем этого "пользователя" в списке рассылки и будем использовать его исключительно для собирания всей посылаемой в список почты. Мы будем создавать архив списка рассылки из почтового ящика этой учетной записи.
Назовем нашего "юзера" projarc. Создать его средствами Вашего дистрибутива Linux можно точно так же, как и "нормального" пользователя. Лично я в своем Debian GNU/Linux использую команду adduser:
### В Вашей системе приглашение может выглядеть немного по-другому ### (это зависит от дистрибутива и локализации, если таковая выполнена), ### но смысл задаваемых вопросов не меняется:) прим. пер. root@mybox:~# adduser Имя учетной записи: projarc Добавляю пользователя projarc... Добавляю новую группу projarc (1004). Добаляю нового пользователя projarc (1004), включенного в группу projarc. Создание домашнего каталога /home/projarc. Копирование файлов из /etc/skel Введите новый пароль UNIX: <password> Повторите новый пароль UNIX: <password> passwd: пароль успешно обнавлен Информации о projarc Введите новое значение или нажмите return, чтобы принять умолчание Полное имя []: Подставной пользователь Номер комнаты []: Рабочий телефон []: Домашний телефон []: [Прочее...]Other []: Информация верна? [да/нет] д
Нужно добавить этого пользователя в файл псевдонимов (/etc/mail/aliases или /etc/aliases) для того, чтобы он стал членом списка рассылки. Просто загрузите файл в редактор и добавьте имя пользователя в список. Вот как теперь должна выглядеть секция списка рассылки:
# Список рассылки проекта Проект theproject: projarc, linus, alan@example.net, esr@example.org
Не забудьте выполнить команду, информирующую MTA о том, что Вы сделали.
Для размещения веб-архива мы воспользуемся общедоступной домашней страницей [public webspace] пользователя projarc. Для этого, создайте в его домашнем каталоге директорию public_html:
lteo@mybox:~$ su - projarc Password: <password> projarc@mybox:~$ mkdir public_html
Обратите внимание на то, что собственный общедоступный веб-каталог пользователя может называться не public_html. Это зависит от настроек веб-сервера. Кроме того, убедитесь в том, что веб-сервер позволяет пользователям подобным способом делать свои веб-страницы. Как это сделать -- я объясню в следующем разделе.
2.3 Настройка Apache
На этом шаге мы настроим Apache таким образом, чтобы пользователям на машине было позволено создавать собственные общедоступные веб-каталоги. Файл конфигурации Apache, который нам придется редактировать, называется /etc/apache/httpd.conf. Как всегда, в Вашем дистрибутиве все может быть иначе. Преодолеваем это препятсвие, запустив locate httpd.conf или find / -name httpd.conf. После того, как нужный файл обнаружен, откройте его в текстовом редакторе и убедитесь, что нижеприведенные строчки не закомментированы (в смысле, перед ними не стоят символы #):
<IfModule mod_userdir.c> UserDir public_html </IfModule>
Вполне вероятно, что значение для UserDir не publi_html, а, скажем, www. Для обозначения пользовательского веб-каталога может использоваться любое имя.
Теперь, если Вы хотите, чтобы члены Вашей рабочей группы имели доступ к архиву по адресу вроде http://mybox.example.com/theproject, то надо создать символическую ссылку из корневой веб-директории Apache на веб-каталог пользователя projarc. Выясним, где находится корневая директория Apache, найдя переменуую DocumentRoot в файле /etc/apache/httpd.conf:
root@mybox:~# grep ^DocumentRoot /etc/apache/httpd.conf DocumentRoot /var/www
В этом примере корневая директория Apache располагается в /var/www. Символическая ссылка на веб-страницу пользователся projarc создается так:
root@mybox:~# cd /var/www root@mybox:/var/www# ln -s /home/projarc/public_html theproject
2.4 Проверка работы hypermail
Когда пользователь получает сообщение электронной почты, оно сохраняется в файле /var/mail/username. В случае нашего пользователя projarc, файл будет называться /var/mail/projarc (обратите внимания, что в некоторых дистрибутивах этот файл будет называться /var/spool/mail/projarc).
С помощью hypermail мы будем читать этот почтовый файл для того, чтобы "генерить" веб-архив. Однако, в момент создания учетной записи projarc этот файл еще не существует. Сначала нам надо послать сообщение в список theproject@mybox.example.com, и этот файл будет создан.
После того, как тестовое письмо будет разослано, надо от имени projarc выполнить следующую команду:
projarc@mybox:~$ hypermail -m /var/mail/projarc -l "The Project" -d /home/projarc/public_html
Теперь зайдите по адресу http://mybox.example.com/theproject/, и в браузере Вы должны увидеть, что веб-архив списка рассылки уже на месте. Что-то вроде этого:
The Project
Most recent messages |
Я не знаю, имеется ли русская локализация hypermail'а, поэтому сохраняю английскую версию "скриншота". Надеюсь, что все и так понятно. Впрочем, локализация hypermail может быть предоставлена в качестве самостоятельного упражнения для пытливого читателя :-) прим. пер.
Для запуска hypermail удобнее воспользоваться его конфигурационным файлом, а не каждый раз набивать в командной строке все нужные параметры. Создайте файл /home/projarc/projarc-hmrc и внесите в него следующие строки:
mbox = /var/mail/projarc label = The Project dir = /home/projarc/public_html
Теперь архив можно создавать следующей командой:
projarc@mybox:~$ hypermail -c /home/projarc/projarc-hmrc
2.5 Настройка cron'а
Нам определенно хочется, чтобы архив нашего списка рассылки автоматически обновлялся всякий раз, когда кто-либо присылает в него письмо. Для этого мы будем использовать cron. Архив не будет обновляться в реальном времени, но мы можем настроить cron так, чтобы hypermail выполнялся каждые 5 минут, что достаточно часто для простого списка рассылки. Конечно, всегда можно использовать более краткие интервалы, например 2 минуты -- все в Ваших руках. Просто имейте в виду, что чем короче интервал, тем больше нагрузка на машину. Так что, если файлы почтовых ящиков действительно большие и с большим количеством вложений, а Вы предоставляете место для нескольких списков рассылки на не слишком шустрой машинке -- может получиться не очень хорошо.
Итак, настроим cron. Для редактирования таблицы cron'а выполним команду:
projarc@mybox:~$ crontab -e
Вы должны оказаться в редакторе, в котором открыт файл с crontab. Если hypermail должен выполняться каждые 5 минут, то нужно добавить следующее:
# Обновляем архив списка рассылки Проект каждые 5 минут */5 * * * * /usr/bin/hypermail -c /home/projarc/projarc-hmrc
Просто сохраните файл и выйдите из редактора, когда закончите. Для проверки, подождите пять минут и обновите http://mybox.example.com/theproject/ в браузере. Время в поле Archived on должно обновиться после очередного выполнения hypermail.
2.6 Резюме
Ниже приводится краткое изложение этапов создания архива для списка рассылки:
- Убедитесь в том, что веб-сервер Apache запущен. Для этого воспользуйтесь командой netstat -a | grep www.
- Установите hypermail.
- Создайте "подставную" учетную запись (например projarc) для пользователя, от лица которого будет создаваться архив рассылки.
- Добавьте этого подставного пользователя в файл псевдонимов (/etc/aliases или /etc/mail/aliases). Выполните команду newaliases (если у Вас установлен sendmail) или postalias /etc/aliases (для Postfix), чтобы MTA узнал о сделаных изменениях. Для exim никаких команд выполнять не надо.
- Создайте для пользователя projarc общедоступную веб-директорию, например так: mkdir public_html (обычно, вновь созданный каталог в домашней директории получает права доступа drwxr-x---. Apache же часто выполняется от пользователя типа nobody и не может читать соответствующую директорию. Результатом будет Error 403:( В этом случае нужно изменить права на drwxr-xr-x или установите группу, к которой принадлежит Apache. прим. пер.).
- В настройках Apache (в файле /etc/apache/httpd.conf) разрешите создание общедоступных веб-ресурсов пользователей.
- Создайте символическую ссылку, указывающую на веб-страницу пользователя projarc (например так: ln -s /home/projarc/public_html theproject).
- Проверьте работу hypermail, выполнив команду hypermail -m /var/mail/projarc -l "The Project" -d /home/projarc/public_html. Затем проверьте на месте ли веб-архив http://mybox.example.com/theproject/.
- Настройте cron таким образом, чтобы hypermail выполнялся каждые 5 пять минут (или через любой другой интервал по Вашему усмотрению).
Надеюсь, что Вы найдете веб-архив списка рассылки столь же полезным, каким нахожу его я. Если появятся комментарии или предолжения -- киньте в меня письмом:).
Lawrence Teo
Lawrence Teo -- аспирант в Ph.D. программе в Университете Шарлотты, Северная Каролина. Он занимается изысканиями в области обнаружения вторжения и защиты критической инфраструктуры в составе своего исследовательского подразделения: Лаборатории Информации, Интеграции, Безопасности и Privacy (LIISP).Раньше Лоренс работал программистом по контракту в Lycos, Singapute и "старшим лаборантом" [research assistant] в DSTC (Мельбурн, Австралия). Он получил степень бакалавра по компьютерным технологиям в Monash University (Мельбурн, Австралия). Вы можете послать ему письмо по адресу lawrenceteo<SPAM>@lycos.com.
Copyright (C) 2001, Lawrence Teo.
Copying license http://www.linuxgazette.com/copying.html
Published in Issue 72 of Linux Gazette, November 2001
Команда переводчиков:
Владимир Меренков, Александр Михайлов, Иван Песин, Сергей Скороходов, Александр Саввин, Роман Шумихин
Со всеми предложениями, идеями и комментариями обращайтесь
к Сергею Скороходову (suralis-s@mtu-net.ru)
Сайт рассылки: http://gazette.linux.ru.net
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||