Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

The message k1H6rBq7047195 sent from <info@salaried.com> to

        <user@mydomain.ru>

contained Worm.SomeFool.P and has not been delivered.

uid=26(mailnull) gid=26(mailnull) groups=26(mailnull)

Распознавать уведомления ClamAV будем по признакам, которые в приведённом выше выводе выделены красным шрифтом (можно ограничиться и каким-то одним, но лучше перестраховаться). Интересующая нас информация об обнаруженном вирусе содержится в предпоследней строке. Ну и в самом конце выводится информация о том, что работа сценария идёт от имени пользователя mailnull, так что теперь можно ужесточить права на каталог /var/scripts/maildigest.

Вопросы доставки

Как видите, сообщение мы получаем в том виде, в каком оно будет в дальнейшем помещено в почтовый ящик пользователя. Обработать его проблем не составит – задействуем модуль rfc822, содержащий методы для разбора заголовков. А вот о чём придётся подумать, так это о том, как положить «транзитное» письмо в ящик пользователю. Можно, конечно, воспользоваться протоколом SMTP, но при наличии уже сформированного сообщения формировать его заново выглядит не очень разумным. К тому же есть риск зациклить обработку письма. Попробуем воспользоваться услугами локального агента доставки (LDA).

Хорошо бы просто отдавать сообщение на вход mail.local (LDA, используемый во FreeBSD по умолчанию). Здесь мы упираемся в то, что для выполнения своей работы mail.local должен запускаться с правами пользователя root.

Обойти это можно, установив на mail.local бит suid, однако поскольку такие права нужны нам для решения частной задачи, то более правильно будет создать копию агента доставки с нужными правами, а оригинальный файл не трогать:

# cd /usr/local/scripts/maildigest/

# cp /usr/libexec/mail.local mail.local.suid

# chmod 4555 mail.local.suid

Проведём ещё один эксперимент:

Листинг 2. Второй эксперимент

 

#!/usr/local/bin/python

 

import os

prefix_bin = '/usr/local/scripts/maildigest/'

prefix_var = '/var/scripts/maildigest/'

lda_command = prefix_bin + 'mail.local.suid admin'

 

mail = open(prefix_var + 'mail.txt', 'r').read()


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100