Não use openssl
para criptografar arquivos. Não é projetado para isso. ( openssl
não é realmente projetado para nada.) Você está apenas se atrapalhando no escuro. Na jaula do tigre.
O GnuPG é projetado precisamente para criptografar arquivos. Instale-o da sua distribuição. Use gpg --gen-key
para gerar uma nova chave. As chaves são armazenadas em ~/.gnupg
. Use gpg --export
para exportar uma chave pública de uma conta, gpg --export-secret-keys
para exportar uma chave secreta e gpg --import
para importá-la em outra conta.
Para criptografar um arquivo, use gpg -e /path/to/file
. Para descriptografar, use gpg /path/to/file.gpg
.
Não analise a saída de find
, use find … -exec …
. E sempre use aspas duplas em torno de substituições de variáveis e comandos. Talvez seus arquivos não possuam caracteres especiais agora, mas usar aspas duplas não pode causar nenhum dano e salvá-lo de uma violação de segurança um dia.
Seu script também é quebrado de outras maneiras, como tentar criptografar diretórios, causando erros espúrios. A partir da aparência do seu script, parece que você não espera encontrar subdiretórios em /var/SYSLOGS/hosts/archive/
. Nesse caso, você não precisa de find
.
cd /var/SYSLOGS/hosts/archive/ &&
for x in *; do
gpg -e -o "/NFS/Nag01/syslogs/hosts/$x.gpg" "$x"
done
Se houver subdiretórios:
cd /var/SYSLOGS/hosts/archive/ &&
find . -type f -exec sh -c '
mkdir -p "${0%/*}" &&
gpg -e -o "/NFS/Nag01/syslogs/hosts/$0.gpg" "$0"
'