¿Hay alguna forma de encriptar un directorio usando gpg
? Parece que solo acepta archivos como argumentos.
¿Hay alguna forma de encriptar un directorio usando gpg
? Parece que solo acepta archivos como argumentos.
Respuestas:
¿Por qué no tar
encriptar los archivos y luego encriptar el tarball?
Acabo de ver la opción --multifile
en la página de manual:
Esto modifica ciertos otros comandos para aceptar múltiples archivos para procesar en la línea de comandos o leer desde STDIN con cada nombre de archivo en una línea separada. Esto permite que se procesen muchos archivos a la vez. --multi‐ file puede usarse actualmente junto con --verify, --encrypt y --decrypt. Tenga en cuenta que --multifile --verify no se puede usar con firmas separadas.
Lo que está buscando específicamente es --encrypt-files
y, nuevamente, la página de manual:
Idéntico a --multifile --encrypt.
Hola, leí los comentarios sobre la respuesta que se ha marcado como exceptuada; Parece que deben ser conscientes de la magia de |
(tubos anónimos) comprobar la respuesta que acaba de publicar en superusuario y encontrará que tar
Y gpg
puede ser unido juntos de tal manera que su salida se comprime y encripta antes de la salida. Tenga en cuenta que todavía usará recursos significativos del sistema, así que revise las man
páginas para ver los nice
comandos para limitar la capacidad de los comandos de consumir solo un cierto porcentaje de recursos. Además, mientras estoy de humor para sugerir temas que pueden facilitarle la vida en la línea de comandos en general; mire los descriptores de archivo y las canalizaciones con nombre para pasar datos.
Si desea ver qué tipo de magia se puede realizar cuando se entienden los temas anteriores, consulte los registros de compilación de Travis-CI y los scripts relacionados para encontrar soluciones relacionadas con la automatización de GnuPG en la línea de comandos.
---- Actualizaciones
Según lo solicitado, se puede encontrar un ejemplo para tratar con directorios dentro del script mencionado anteriormente en la línea 680 y un ejemplo más general sería ...
#!/usr/bin/env bash
dir_path="${1:?${0##*/} needs a directory path as the first argument}"
default_gpg_email="your-email@host.domain"
gpg_email="${2:-$default_gpg_email}"
_dir_name="${dir_path##*/}"
_dir_name="${_dir_name%/*}"
Var_star_date="$(date -u +%s)"
if [ -d "${dir_path}" ]; then
tar -cz - "${dir_path}" | gpg --always-trust --armor --batch --no-tty --encrypt --recipient ${gpg_email} > /tmp/${Var_star_date}_${_dir_name}.tgz.gpg"
else
echo "${0##*/} operates on directories"
exit 1
fi
... que tal vez se ejecute con script-name.sh /path/to/dir
o script-name.sh /path/to/dir new-email@host.domain
y debería enviar al /tmp
directorio un archivo<current-date>_<top-dir-name>.tgz.gpg