Не используйте openssl
для шифрования файлов. Он не предназначен для этого. ( openssl
на самом деле не предназначен ни для чего.) Вы просто возитесь в темноте. В клетке тигра.
GnuPG предназначен именно для шифрования файлов. Установите его из своего дистрибутива. Используйте gpg --gen-key
, чтобы сгенерировать новый ключ.Ключи хранятся в ~ / .gnupg
. Используйте gpg --export
для экспорта открытого ключа из учетной записи, gpg --export-secret-keys
для экспорта секретного ключа и gpg --import
, чтобы импортировать его на другой аккаунт.
Чтобы зашифровать файл, используйте gpg -e / путь / к / файлу
. Для расшифровки используйте gpg /path/to/file.gpg
.
Не анализируйте вывод find
, используйте find… -exec…
. И всегда используйте двойные кавычки для замены переменных и команд. Возможно, в ваших файлах сейчас нет специальных символов, но использование двойных кавычек не может причинить никакого вреда и однажды спасет вас от нарушения безопасности.
Ваш сценарий также поврежден и другими способами, например, при попытке зашифровать каталоги, вызывая ложные ошибки. Судя по вашему сценарию, похоже, что вы не ожидаете найти подкаталоги в / var / SYSLOGS / hosts / archive /
, и в этом случае вам не нужно find
.
cd /var/SYSLOGS/hosts/archive/ &&
for x in *; do
gpg -e -o "/NFS/Nag01/syslogs/hosts/$x.gpg" "$x"
done
Если есть подкаталоги:
cd /var/SYSLOGS/hosts/archive/ &&
find . -type f -exec sh -c '
mkdir -p "${0%/*}" &&
gpg -e -o "/NFS/Nag01/syslogs/hosts/$0.gpg" "$0"
'