Не удается использовать / usr / bin / security для получения пароля из цепочки для ключей через cron

1173
Shane

Кажется, я не могу успешно получить пароли из цепочки для ключей, используя / usr / bin / security, когда запускаю его из моего пользовательского crontab. Прекрасно работает в моем терминале.

Через вывод почты cron я также вижу, что все мои USER, HOME и PATH правильно настроены внутри cron.

Я смог определить, что когда он работает в cron, он видит только мою системную цепочку для ключей, а не мою цепочку для ключей пользователей:

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

Затем я сказал / usr / bin / security явно использовать цепочку ключей моего пользователя, и теперь я не получаю вывод, но код выхода равен 36.

#security error 36 Error: 0x00000024 36 CSSM_ERRCODE_OBJECT_ACL_REQUIRED 

Я не могу понять, что это значит.

Я указал свой PATH в cron и попытался запустить / usr / bin / security из оболочки входа в bash через bash -l -c /usr/bin/security...

Вот команда cron, которую я запускаю:

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

Письмо, которое я получаю от cron, показывает, что путь PATH успешно получен.

Есть идеи? Спасибо!

2

1 ответ на вопрос

3
Shane

So it looks like even though I was attempting to run this in my crontab, because cron itself runs as root it still wasn't allowed to access my keychains.

I found this blog post which talks about using launchd instead to schedule jobs and my job now works fine via launchd! :)