добавление фильтра регулярных выражений для блокировки субдомена и TLD в sendmail

Хорошо, создайте файл и назовем его run.sh. Сценарий оболочки похож на файл bat в Windows, предназначенный для запуска в интерпретаторе командной строки. Для этого мы воспользуемся оболочкой Bash.

#!/bin/bash 

Означает, что этот файл использует интерпретатор Bash. / bin / bash относится к абсолютному пути интерпретатора в файловой системе.

Итак, согласно https://www0.sun.ac.za/hpc/index.php?title=HOWTO_submit_jobs , я полагаю, вы хотите, чтобы что-то подобное было записано в run.sh:

#!/bin/bash

cd $PBS_O_WORKDIR
./script 

А затем для запуска с qsub:

qsub run.sh

$ PBS_O_WORKDIR - это переменная среды, которая относится к абсолютному пути к текущему рабочему каталогу, в котором вы вызвали команду qsub.

Полученная вами ошибка «файл должен быть сценарием ascii» просто означает, что qsub требуется сценарий оболочки в качестве аргумента вместо вашего файла примера.

2
29.11.2016, 23:09
1 ответ

Понятно! Обратите внимание, что кажется, что требуется отступ перед регулярным выражением и дополнительное пространство строки перед LOCAL_CONFIG в файле sendmail.mc. Подсказка к этому сообщению в блоге XIITEC для некоторых подсказок, а также к кулинарной книге sendmail .

LOCAL_CONFIG
# this will block subdomain.domain.us or subdomain.domain.info but not domain.us or domain.info
Kcheckaddress regex -a@MATCH
   [a-zA-Z_0-9.-]+<@[a-zA-Z_0-9-]+?\.+[a-zA-Z_0-9.-]+?\.(us|info)

HMessage-Id: $>CheckMessageId

SCheckMessageId
R< $+ @ $+ >            $@ OK
R$*             $#error $: "553 Header error"

LOCAL_RULESETS
SLocal_check_mail

R$*             $: $>Parse0 $>3 $1
R$+             $: $(checkaddress $1 $)
R@MATCH             $#error $: "553 Your Domain is Blocked for Unsolicited Mail"

Вот доказательство того, что это работает:

sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> Local_check_mail 123@aol.com
Local_check_mail   input: 123 @ aol . com
canonify           input: 123 @ aol . com
Canonify2          input: 123 < @ aol . com >
Canonify2        returns: 123 < @ aol . com . >
canonify         returns: 123 < @ aol . com . >
Parse0             input: 123 < @ aol . com . >
Parse0           returns: 123 < @ aol . com . >
Local_check_mail returns: 123 < @ aol . com . >
> Local_check_mail 123@aol.com.us
Local_check_mail   input: 123 @ aol . com . us
canonify           input: 123 @ aol . com . us
Canonify2          input: 123 < @ aol . com . us >
Canonify2        returns: 123 < @ aol . com . us >
canonify         returns: 123 < @ aol . com . us >
Parse0             input: 123 < @ aol . com . us >
Parse0           returns: 123 < @ aol . com . us >
Local_check_mail returns: $# error $: "553 Your Domain is Blocked for Unsolicited Mail"
0
27.01.2020, 22:44

Теги

Похожие вопросы