Блокировать все остальное для веб-сервера
iptables -A INPUT -p tcp ! -s 10.8.0.0/24,127.0.0.0/8 --dport 80 -j REJECT
iptables -A INPUT -p tcp ! -s 10.8.0.0/24,127.0.0.0/8 --dport 443 -j REJECT
Это можно сделать с помощью перенаправления. Он ведет себя как cp
-T, --no-target-directory
(и завершается с ошибкой, если dst
является каталогом):
$ cat src > dst
Что касается абсолютной совместимости, вы можете проверить целевой каталог перед попыткой копирования.
Либо ошибка,
[ -d dest ] && echo "${0##*/}: is a directory: dest" >&2 && exit 1
cp src dest
или тихо удалить цель
[ -d dest ] && rm -rf dest
cp src dest
Не существует атомарной операции для удаления каталога и замены его файлом. (Вы можете найти такую команду, как cp --no-target-directory
, но лежащая в ее основе операция по-прежнему принципиально не атомарна. Все, что вы делаете, это уменьшает поверхность атаки, а не устраняет ее.)