Необходимо скопировать элементы явно. Для индексного массива:
b=("${a[@]}")
Для ассоциативного массива (отмечают это a
название переменной типа массив, не переменная, значение которой является названием переменной типа массив):
typeset -A b
for k in "${!a[@]}"; do b[$k]=${a[$k]}; done
Если у Вас есть имя переменной в массиве, можно использовать поэлементно метод с дополнительным шагом для получения ключей.
eval "keys=(\"\${!$name[@]}\")"
for k in "${keys[@]}"; do eval "b[\$k]=\${$name[\$k]}"; done
(Предупреждение, код в этом сообщении был введен непосредственно в браузере и не протестирован.)
Я думаю, что Ваша команда прекрасна. Хотя порядок аргументов является несколько неортодоксальным, он должен работать.
Проблема наиболее вероятна это iptables
правила берут влияние в порядке, который они вводятся. При вводе правила блока, которое соответствует, то позволить правило, позволить правило не привыкнет, потому что пакет уже соответствовал правилу блока.
Общая практика при установке iptables
должен сбросить все правила, установить политику, затем ввести все вещи, которые Вы хотите позволить, затем отклонить все остальное с помощью широкого правила соответствия. Я подозреваю, что Вы имеете порядок неправильно и отклоняете все должное к ранее установленному правилу и теперь пытаетесь добавить позволение.
Если это - Ваши единственные правила, Вы должны быть чрезвычайно закрыты. Можно хотеть ограничить IP-адреса, из которых Вы принимаете данные. Распространено запустить цепочки с правила принять СВЯЗАННЫЕ и Установленные соединения.
Если Вы не уверены, что Вы делаете, можно хотеть использовать инструмент для создания брандмауэра. Я использую Shorewall, который хорошо документируется. Это генерирует регистрирующиеся правила для Вас так, Вы видите, что трафик заблокирован. (Обычно зондируемые порты, такие как доли окон не зарегистрированы конфигурация по умолчанию.) Существуют наборы в качестве примера для 1, 2, и 3 интерфейсных конфигурации, включенные в документацию. Существуют также команды, которые позволяют Вам просматривать свою конфигурацию брандмауэра и соединения легко.
iptables -F INPUT; iptables -i em1 -A INPUT -j ACCEPT -p tcp --dport 9001 -v; iptables -A INPUT j DORP
? – 12312312123 30.07.2011, 22:45-j DROP
нетj DORP
) та комбинация должна добиться цели. Попробуйте его путем слушания на другом порте сnc
или что-то простое, чтобы открыть тестовый порт и затем попытаться говорить с ним. – Caleb 30.07.2011, 23:02