No se puede usar / usr / bin / security para recuperar la contraseña del llavero a través de cron

3

Parece que no puedo recuperar con éxito las contraseñas del llavero usando / usr / bin / security cuando lo ejecuto desde el crontab de mis usuarios. Funciona bien en mi terminal.

También puedo ver a través de la salida de correo cron que mi USUARIO, HOME y PATH están configurados correctamente dentro de cron.

He podido determinar que cuando se ejecuta en cron solo ve el llavero de mi sistema y no el llavero de mis usuarios:

    "/Library/Keychains/System.keychain"
    "/Library/Keychains/System.keychain"

Luego le dije a / usr / bin / security que usara el llavero de mis usuarios explícitamente y ahora no obtengo salida, pero el código de salida es 36.

#security error 36
Error: 0x00000024 36 CSSM_ERRCODE_OBJECT_ACL_REQUIRED

Parece que no puedo entender lo que esto significa.

Especifiqué mi PATH en cron e intenté ejecutar / usr / bin / security desde dentro de un shell de inicio de sesión bash a través de bash -l -c /usr/bin/security...

Aquí está el comando cron que estoy ejecutando:

bash -l -c '/usr/bin/security find-generic-password -g -a myusername -s test_vault /Users/myusername/Library/Keychains/login.keychain 2>&1 ; echo $?'

El correo que recibo de cron muestra que la RUTA se está recogiendo con éxito.

¿Algunas ideas? ¡Gracias!

Shane
fuente

Respuestas:

4

Por lo tanto, parece que aunque estaba intentando ejecutar esto en mi crontab, porque el cron mismo se ejecuta como root, todavía no se le permitió acceder a mis llaveros.

¡Encontré esta publicación de blog que habla sobre el uso de launchd en su lugar para programar trabajos y mi trabajo ahora funciona bien a través de launchd! :)

Shane
fuente