Here is an [example] of the ftp helper added by enabling the ftp service in the public zone.
Похоже, что «помощник» ftp включается только в том случае, если вы специально разрешили «службу» ftp в firewalld
. Для каждого вспомогательного определения должно быть соответствующее определение службы.
Первоначально я думал, что вы будете включать «службу», только если вы используете, например. FTP-сервер . FTP пассивный режим, который в настоящее время является предпочтительным, по-прежнему требует дополнительного подключения. Клиент должен подключиться к серверу по второму порту, чтобы передать данные файла. «Помощник» необходим, чтобы определить, какой порт используется, и разрешить это дополнительное соединение.
Ни один из помощников не помечен как -client
(, как сервисdhcpv6-client
). Но, насколько я могу судить, включение службы FTP на клиенте позволит ему использовать исходный FTP активный режим (, предполагая, что firewalld
является единственным брандмауэром в сети. способ ). Я думаю, что этот пример не представляет большой проблемы с безопасностью, но он может быть очень запутанным :-(.
(Nitpick :FedoraWorkstation в любом случае разрешает активный режим FTP, потому что он разрешает входящие соединения на любой порт выше 1024. Пожалуйста, не просите меня объяснить, почему ).
Вторым примером, на который я смотрел, был помощник irc, но я не могу его понять. Мне он кажется сломанным.
# cat /usr/lib/firewalld/helpers/irc.xml
<?xml version="1.0" encoding="utf-8"?>
<helper module="nf_conntrack_irc" family="ipv4">
<port protocol="tcp" port="194"/>
</helper>
# cat /usr/lib/firewalld/services/irc.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>IRC</short>
<description>An IRCd, short for Internet Relay Chat daemon, is server software that implements the IRC protocol.</description>
<port protocol="tcp" port="6667"/>
</service>
bash
скрипты
Хэшбанг #!/bin/bash
необходим только в том случае, если вы хотите сделать сам файл исполняемым и показать, какая команда предназначена для интерпретации командных строк, следующих после этого.
Итак, все, что вам нужно сделать, этоbash your-command-file
Проверьте этот «командный файл».Сохраните его как commands1
и запуститеbash commands1
echo -n "Hi, "
sleep 1
echo -n "how "
sleep 1
echo -n "are "
sleep 1
echo "you?"
И сравните с этим(commands2
):
echo -n "Hi, " &
sleep 1 &
echo -n "how " &
sleep 1 &
echo -n "are " &
sleep 1 &
echo "you?"
Как видите, в последнем случае команды выполняются более или менее параллельно, отправляя выполнение команд фоновым процессам через &
.
Ваш список команд фактически является сценарием оболочки, даже без шебанга (строка #!/bin/bash
вверху ). Вы можете указать его в качестве аргумента для оболочки, и оболочка будет выполнять его по одной строке за раз, ожидая завершения выполнения :
bash my_commands.txt
или, если вашим командам на самом деле не нужны bash
,
sh my_commands.txt