Tampaknya saya tidak dapat berhasil mengambil kata sandi dari gantungan kunci menggunakan / usr / bin / keamanan ketika saya menjalankannya dari crontab pengguna saya. Bekerja dengan baik di terminal saya.
Saya juga dapat melihat melalui keluaran cron mail bahwa USER, HOME, dan PATH saya semuanya diatur dengan benar di dalam cron.
Saya sudah dapat menentukan bahwa ketika dijalankan di cron, ia hanya melihat gantungan kunci sistem saya dan bukan gantungan kunci pengguna saya:
"/Library/Keychains/System.keychain"
"/Library/Keychains/System.keychain"
Saya kemudian mengatakan / usr / bin / keamanan untuk menggunakan gantungan kunci pengguna saya secara eksplisit dan sekarang saya tidak mendapatkan hasil tetapi kode keluarnya adalah 36.
#security error 36
Error: 0x00000024 36 CSSM_ERRCODE_OBJECT_ACL_REQUIRED
Sepertinya saya tidak tahu apa artinya ini.
Saya telah menentukan PATH saya di cron dan mencoba menjalankan / usr / bin / keamanan dari dalam shell login bash via bash -l -c /usr/bin/security...
Berikut adalah perintah cron yang saya jalankan:
bash -l -c '/usr/bin/security find-generic-password -g -a myusername -s test_vault /Users/myusername/Library/Keychains/login.keychain 2>&1 ; echo $?'
Email yang saya terima dari cron menunjukkan bahwa PATH berhasil diambil.
Ada ide? Terima kasih!
sumber