Как расшифровать файлы с помощью gpg / gnupg, не теряя исходных прав доступа к файлам?

Анализ вывода 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нет правила, но, конечно, тоже деструктивно...

1
31.08.2021, 06:03
1 ответ

Как предложили @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

Тот же механизм можно использовать для согласования разрешений после шифрования. Я не проводил никаких тестов производительности, не уверен, что один из вариантов быстрее.


Я не приму это как ответ сразу, может быть кто-то придумает лучшее решение, чем это.

1
31.08.2021, 10:43

Теги

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