Там существует файл конфигурации, который определяет настройки по умолчанию. Можно найти файл под путем установки cpan под CPAN/Config.pm
. Путь usally /usr/lib/perl5/<version>/
.
Мое предложение состояло бы в том, чтобы скорректировать значения makepl_arg
и mbuildpl_arg
в глобальном файле конфигурации, так как модули жемчуга являются любой сборкой и установленный через MakeMaker
или Build
. Если Вы помещаете это:
'makepl_arg' => q[INSTALLDIRS=perl INSTALLBIN=/opt/mycpanmodules/bin/ INSTALLARCHLIB=/opt/mycpanmodules/perl5/ INSTALLPRIVLIB=/opt/mycpanmodules/perl5/ INSTALLSCRIPT=/opt/mycpanmodules/perl5/ INSTALLMAN1DIR=/opt/mycpanmodules/man/ INSTALLMAN3DIR=/opt/mycpanmodules/man/],
'mbuildpl_arg' => q[--install_path lib=/opt/mycpanmodules/perl5/ --install_path arch=/opt/mycpanmodules/perl5/ --install_path script=/opt/mycpanmodules/bin/ --install_path bindoc=/opt/mycpanmodules/man/ --install_path libdoc=/opt/mycpanmodules/man/],
в Вашем Config.pm
все модули, которые установлены через cpan
переходит в /opt/mycpanmodules
.
В конечном счете необходимо установить переменную среды
PERL5LIB=/opt/mycpanmodules/perl5
так, чтобы Ваше локальное perl
знает, где искать дополнительно установленный modules
.
При использовании --L
- список - список
- список - список . Параметр - список текущих правил брандмауэра, вам также необходимо указать подходящую таблицу NetFilter (один Из фильтра
, NAT
, ,
,
, ,
или или
Безопасность
). Итак, если вы добавили правило для таблицы NAT
, вы должны явно указать эту таблицу с использованием -T
, - Таблица
:
iptables --table nat --list
Или используйте короткие формы параметров:
iptables -t nat -L
Если вы не укажете конкретную таблицу, таблица Таблица
используется в качестве по умолчанию.
Для более быстрых результатов может быть полезно также включать ,
, - NUMERIC
параметр для печати числовых IP-адресов вместо имени хостов, тем самым избегая необходимости ждать Обратный поиск DNS.
Вы можете получить еще больше информации, включая -V
, - Verbose
.
Команда IPtables
Команда также требует от вас указать таблицу, в противном случае по умолчанию используется таблица фильтров. Итак, попробуйте:
iptables -t nat -L
Что я делаю, это выполнить iptables-Save> iPtables_bckp
, это будет создавать резервное копирование всех слоев, а затем редактировать файл и восстановить iptables IPTables-Restore
# iptables-save > iptables_bckp
# vim iptables_bckp
# iptables-restore < iptables_bckp
Вы можете сделать двойную резервную копию, поэтому вы измените один из них, не потеряв свои прошлые IPTables.
Это личная практика, я не говорю, что это лучший способ, но для меня отлично работает.
Дайте попробую
Я думаю, что проблема того, что вы там делаете, в том, что это не имеет никакого смысла. Без обид, но я имею в виду, что я думаю, что вы просто неправильно понимаете, что eval
делает. Похоже, вы пытаетесь использовать его только для выполнения команды - это основная функциональность оболочки и не требует, чтобы оболочка пыталась интерпретировать свои последние расширения как новые команды - что и делает eval
.
То, как у вас есть все ваши цитаты написаны в вы защищаете что-либо от второй оценки в любом случае. Или, скорее, вы защищаете первый проход полностью - и так ничего вообще не происходит до второго прохода. Проблема со всем этим в том, что вы можете просто не сделать вторую оценку (и второй уровень цитат) вообще.
Мне кажется, что вы пытаетесь выполнить определенную команду на основе значения $ OS
- может быть...? Это одна из самых доступных функций API в оболочке.
Например:
OS=AIX
host=myhost
_cmd_AIX() { host "$host"; }
_cmd_WIN() { exit "$((LOSE=1))"; }
Вы видите - вы можете запустить те определенные функции, которые указаны. Их имя команды не нуждается в каком-либо специальном втором интерпретаторе, чтобы иметь значение - даже когда это происходит в результате расширения. Он просто должен быть в командном положении. Они по-прежнему принимают параметры, которые путь - так что вы можете передать $ host
как $1
, если хотите. Вы просто называете это так:
"_cmd_$OS"
$ OS
var расширится до AIX
и результирующее командное слово будет _ cmd _ AIX
- что является предопределенной оболочечной функцией, имя которой встречается как единое целое и правильно разделенное оболочечное слово в команде позиции - и поэтому выполняется. Именно так. Никаких конторций не нужно - и он даже поставляется со своим собственным массивом.
Переопределите $ OS
в любое время до имени другого действительного суффикса для других вариантов поведения.
Можно установить wireshark и начать сканирование на сетевой плате.
Отфильтруйте результат по «nbns», и вы увидите IP в верхнем окне.
-121--217217- iptables
управляет пятью различными таблицами: filter
, nat
, mangle
, raw
и security
. При данном вызове iptables
дисплеев или изменяет только одну из этих таблиц, заданную аргументом опции -t
(по умолчанию используется фильтр
). Для просмотра полного состояния брандмауэра необходимо последовательно вызвать iptables
в каждой из таблиц.
Кроме того, для получения точного представления правил необходимо пройти опцию -v
. В противном случае некоторые важные критерии опущены в выходных данных, например, интерфейс в правилах фильтрации (например,правило «принять все» и правило «принять все на интерфейсе закольцовывания» можно отличить только с помощью -v
).
Таким образом, для получения полного представления правил netfilter необходимо
iptables -vL -t filter
iptables -vL -t nat
iptables -vL -t mangle
iptables -vL -t raw
iptables -vL -t security
Также можно вызвать программу iptables-save
, которая отображает все правила во всех таблицах в формате, который может быть проанализирован с помощью iptables-restore
. Этот формат также разумно читается человеком (это в значительной степени похоже на серию вызовов команды iptables
для построения таблицы).
iptables -S
помогает мне. Вроде перечисляет все активные правила, даже когда служба отключена.
На странице руководства:
-S, --list-rules [цепочка] Распечатать все правила в выбранной цепочке. Если цепочка не выбрана, все цепочки печатаются как iptables-save. Как и любая другая команда iptables, она применяется к указанной таблице (по умолчанию используется фильтр).
Если это действительно поможет, вы можете написать сценарий bash и поместить его в папку, на которую ссылается ваш путь, или ссылаться на нее через псевдоним в файле ~/.bashrc.
AllRules.sh
#!/bin/bash
echo "Filter table:"
iptables -t filter -vL
echo "Nat table:"
iptables -t nat -vL
echo "Mangle table:"
iptables -t mangle -vL
echo "Raw table:"
iptables -t raw -vL
echo "Security table:"
iptables -t security -vL
echo
echo "All rules in all tables printed"
Не забудьте предоставить вашему новому сценарию bash разрешения на выполнение с помощью chmod
Если разрешение является проблемой, вам может потребоваться добавить sudo перед всеми командами iptables
.