Изменение правил брандмауэра с помощью pfctl в NetBSD 4

Вы неправильно понимаете смысл #!. На самом деле это директива для операционной системы запускать эту программу под определенным интерпретатором.

Таким образом, сценарий может быть #!/usr/bin/perl, и результирующая программа может быть запущена как ./myprogramи может использоваться интерпретатор perl. Подобный #!/usr/bin/pythonзаставит программу работать под python.

Таким образом, строка #!/bin/bashговорит ОС запустить эту программу под bash.

Вот пример:

$ echo $0
/bin/ksh

$ cat x
#!/bin/bash

ps -aux | grep $$

$./x
sweh      2148  0.0  0.0   9516  1112 pts/5    S+   07:58   0:00 /bin/bash./x
sweh      2150  0.0  0.0   9048   668 pts/5    S+   07:58   0:00 grep 2148

Таким образом, несмотря на то, что моя оболочка ksh, программа «x» работает под управлением bash из-за строки #!, и это явно видно в листинге процесса.

0
12.09.2020, 06:34
1 ответ

Глядя на/etc/rc.d/pfв NetBSD 4.0(или даже в 9.0 ), функция pf_reloadпросто запускает pfctl -q -f /etc/pf.conf, так что может показаться, что сброс старых правил не нужен.

Чтобы вручную сбросить все правила и состояния, вы можете использовать pfctl -F all.

Если в аэропорту не установлены справочные страницы, вы можете прочитать справочную страницу дляpfctl(8)онлайн.

Я искал команду для сброса текущих правил (, аналогичную ipfstat(8)), но ничего не нашел в руководствах. Было бы полезно проверить состояние брандмауэра.

1
18.03.2021, 23:05

Теги

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