установка firewall-cmd --permanent не задерживается после перезагрузки

Использование wc -l не даст правильного результата, если имя ваших файлов содержит новую строку.

В bash и zsh вы можете использовать расширение скобок:

for n in {000001..999999}; do
  f=A-B-$n-C
  [ -f "$f" ] || printf '%s missing\n' "$f"
done

ksh93 с опцией braceexpand enable:

for n in {1..999999%06d}; do
  : the code above
done

В ksh и zsh вы можете сделать:

typeset -Z6 i=1
max=999999
while [ "$i" -le "$max" ]; do
  f=A-B-$i-C
  [ -f "$f" ] || printf '%s missing\n' "$f"
  : "$((i+=1))"
done

POSIXly:

min=1
max=999999
while [ "$min" -le "$max" ]; do
  f=$(printf "A-B-%0${#max}d-C" "$min")
  [ -f "$f" ] || printf '%s missing\n' "$f"
  : "$((min+=1))"
done
3
03.01.2019, 09:01
6 ответов

Наконец-то я понял --.

Я добавил файл сценария zone-for-p2p1в каталог /etc/network/if-up.d.

zone-for-p2p1содержимое файла сценария:

#!/bin/sh
#
# sets zone for p2p1 adapter to "trusted"
# to find out adapter name run "nmcli con show | grep p2p1"
#
nmcli con mod "netplan-p2p1" connection.zone trusted

Затем я также убедился, что файл имеет разрешение на выполнение:

sudo chmod +x /etc/network/if-up.d/zone-for-p2p1

Теперь при перезагрузке скрипт назначает соответствующую зону адаптеру. Этот пост помог мне добавить скрипт.

2
27.01.2020, 21:13

Я нашел запись в блоге , которая кажется связанной. Возможно, попробуйте перезапустить брандмауэр:

systemctl restart firewalld.service

Это необходимо сделать после добавления правила и перед перезагрузкой.

1
27.01.2020, 21:13

Поскольку ваш интерфейс управляется с помощью NetworkManager, вы можете управлять настройками соединения напрямую с помощью nmcli, чтобы установить зону:

на постоянной основе.
sudo nmcli connection modify p2p1 connection.zone trusted

Поведение по умолчанию для этой команды заключается в постоянном внесении изменений, которые сохранятся после перезагрузки.

1
27.01.2020, 21:13

Вот решение для Ubuntu 18.04 со сценарием if -up и брандмауэром -cmd инструментом(nmcli not' почему-то не работает)

  1. Станьте пользователем root и создайте файл if -up с правами администратора

    sudo su -
    touch /etc/network/if-up.d/p2p1-trusted && chmod +x $_
    
  2. Поместите следующий контент и сохраните файл

    #!/bin/sh
    
    # check if script is executed for the interface we need
    if [ "$IFACE" != "p2p1" ]; then
        exit 0
    fi
    firewall-cmd --zone=trusted --change-interface="$IFACE"
    
  3. Перезагрузка

  4. Подтвердить

    $ sudo firewall-cmd --get-active-zones
    trusted
      interfaces: p2p1
    public
      interfaces: wlp1s0
    
1
27.01.2020, 21:13

Пробовали ли вы перезагружать брандмауэр вместо перезапуска? Если нет, вы можете сделать это следующим образом:

firewall-cmd --reload

По моему опыту, всякий раз, когда вы используете переключатель --permanent, вы должны применять это изменение с помощью --reload, как указано выше.

1
27.01.2020, 21:13

Предположим, что X — это команда. (.e.g.firewall-cmd --add-service=http)

2 опции:

  • либо X --permanent, либоfirewall-cmd --reload

  • ИЛИ запуститеX(без постоянного ), затем снова запустите его с постояннымX --permanent

0
01.11.2020, 19:43

Теги

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