Как добавить несколько правил пользователя в ufw ?

Возможное решение

Для GNU findи других реализаций, поддерживающих -execdir:

find dir1 dir2 dir3 -type d -execdir test -d '.git' \; -print -prune

(см. комментарии)

Ранее обсуждавшиеся вещи

Решение, если сокращения ниже .gitдостаточно

find dir1 dir2 dir3 -type d -path '*/.git' -print -prune | xargs -I {} dirname {}

Если -printf '%h'поддерживается (как в случае findот GNU), нам не нужно dirname:

find dir1 dir2 dir3 -type d -path '*/.git' -printf '%h\n' -prune

Как только он встретит папку .gitпо текущему пути, он выведет ее, а затем перестанет искать дальше вниз по поддереву.

Решение, если все дерево папок должно быть обрезано один раз .gitнайден

Используя -quit, если ваш findподдерживает это:

for d in dir1 dir2 dir3; do
  find "$d" -type d -name .git -print -quit
done | xargs -I {} dirname {}

(Согласно этой подробной публикации Стефана Шазела-quitподдерживается в GNU и FreeBSD findи в NetBSD как -exit.)

Снова с -printf '%h', если поддерживается:

for d in dir1 dir2 dir3; do
  find "$d" -type d -name .git -printf '%h\n' -quit
done

Решение для обрезки на том же уровне, где находится папка .git

См. ]"Возможное решение"для текущего решения этой конкретной проблемы.

(О, и очевидно, что решения, использующие xargs, предполагают, что в путях нет новых строк, иначе вам понадобится магия нулевого байта.)

1
22.01.2017, 13:23
1 ответ

Вы можете редактировать свои правила напрямую. Найдите, где хранятся ваши правила - это может отличаться в зависимости от версии ОС.

Я использую Ubuntu 16.04; мои правила находятся в /etc/ufw/user.rules. Некоторые старые версии Debian хранят файлы в /lib/ufw/user.rules, поэтому проверьте и там.

После редактирования файла выполните sudo ufw reload, чтобы перезагрузить правила. Затем выполните sudo ufw status, чтобы подтвердить, что ваши новые правила были включены.

0
28.01.2020, 01:03

Теги

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