Cuando ejecuto restic
desde la línea de comandos con sudo
, en realidad puedo hacer una copia de seguridad de mi biblioteca de Fotos. Pero esto probablemente se deba a que he dado a Terminal
acceso completo al disco.
De hecho, estoy iniciando restic
desde un script propio. Pero funciona bien.
También he creado una programación de launchd
. Pero cuando se ejecuta desde ahí, obtengo estos errores de permisos, como:
scan: open /Users/gerben/Pictures/Photos Library.photoslibrary: operación no permitida
El plist de launchd contiene:
ProgramArguments
/opt/local/etc/restic/rna-run-restic.sh
Ese script, que es multiplataforma, por lo que puede ejecutarse en macOS y en Linux con docker, comienza con
#!/bin/bash
# Script de interfaz R&A restic
# Asegurarse de que estemos ejecutando bash >4
if [ -n "$BASH_VERSION" ]; then
# Extraer el número de versión principal (primer número) de BASH_VERSION
major_version="${BASH_VERSION%%.*}"
# Comprobar si la versión principal es menor que 5
if [ "$major_version" -lt 5 ]; then
# Volver a ejecutar el script con /opt/local/bin/bash
exec "/opt/local/bin/bash" "$0" "$@"
fi
else
# Volver a ejecutar el script con /opt/local/bin/bash
exec "/opt/local/bin/bash" "$0" "$@"
fi
Y en algún momento en macOS, esto pone en marcha /opt/local/bin/restic
(instalado por MacPorts) con los argumentos correctos, como por ejemplo:
/opt/local/bin/restic --verbose -p -passwd.txt -r rest:https://fqdn:port/ backup --host foo --tag pictures --files-from /opt/local/etc/restic/etc/foo-includes-pictures.txt
Pero mientras que desde Terminal puedo ejecutar esa copia de seguridad, no puedo desde launchd
. ¿Cómo lo soluciono?