Tidak dapat menggunakan / usr / bin / keamanan untuk mengambil kata sandi dari gantungan kunci melalui cron

3

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!

Shane
sumber

Jawaban:

4

Jadi sepertinya walaupun saya mencoba menjalankan ini di crontab saya, karena cron itu sendiri berjalan sebagai root, itu masih tidak diizinkan untuk mengakses gantungan kunci saya.

Saya menemukan posting blog ini yang berbicara tentang menggunakan launchd sebagai gantinya untuk menjadwalkan pekerjaan dan pekerjaan saya sekarang berfungsi dengan baik melalui launchd! :)

Shane
sumber