2

Кажется, я не могу успешно получить пароли из цепочки для ключей, используя /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 успешно получен.

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

1 ответ1

3

Таким образом, похоже, что хотя я пытался запустить это в моем crontab, потому что сам cron работает как root, ему все еще не разрешен доступ к моим цепочкам для ключей.

Я нашел этот пост в блоге, в котором говорится об использовании launchd вместо того, чтобы планировать работу, и моя работа теперь отлично работает через launchd! :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .