Анализ вывода iptables -L --line-numbers
не должен быть таким уж плохим:
num=3
if iptables -L foo --line-numbers | grep -qe "^$num "; then
echo "rule exists at line #$num"
else
echo "no rule at line #$num"
fi
Тем не менее, я не уверен, насколько это полезно, так как, например. удаление правил с начала цепочки изменяет номера других правил, поэтому они не работают как уникальные идентификаторы или что-то в этом роде. С тем же успехом вы могли бы взять количество правил в цепочке(iptables -L foo --line-numbers | sed -ne '$s/.*//p'
)и сравнить с ним.
В шутку можно было бежать iptables -D foo "$num"
. Жалуется, если по номеру $num
нет правила, но, конечно, тоже деструктивно...
Как предложили @a -b и @frostschutz , обертывание файлов в файл tar
с последующим шифрованием является опцией.
Однако я хотел бы иметь доступ к исходной файловой структуре без расшифровки. На данный момент я прибегал к выравниванию прав доступа к файлам после пакетной расшифровки. Это дает дополнительное преимущество в выравнивании разрешений, когда расшифрованные файлы уже лежат на диске :
.gpg --batch --decrypt-files $files
for encrypted in $files ; do
decrypted=${encrypted%.gpg}
chmod --reference="$encrypted" -- "$decrypted"
done
Разумеется, выравнивание можно выполнять и после каждого расшифрованного файла:
for encrypted in $files ; do
gpg --decrypt-files "$encrypted"
decrypted=${encrypted%.gpg}
chmod --reference="$encrypted" -- "$decrypted"
done
Если вы хотите быть абсолютно уверены, что у расшифрованного файла никогда не будет больше разрешений, чем у зашифрованного файла, вы можете использовать временный фиктивный файл и принудительно gpg
перезаписать его:
for encrypted in $files ; do
decrypted=${encrypted%.gpg}
touch "$decrypted" && chmod --reference="$encrypted" -- "$decrypted"
gpg --yes --decrypt-files "$encrypted"
done
Тот же механизм можно использовать для согласования разрешений после шифрования. Я не проводил никаких тестов производительности, не уверен, что один из вариантов быстрее.
Я не приму это как ответ сразу, может быть кто-то придумает лучшее решение, чем это.