Atur preferensi aplikasi OS X untuk berhenti meminta kata sandi admin

3

Saya mencoba menulis applescript yang mengirimkan beberapa tindakan ke suatu aplikasi (khususnya waterroof). Masalahnya adalah, aplikasi secara berkala meminta saya untuk kata sandi admin ketika saya membuka panel pengaturan yang saya minati. Ini bekerja berdasarkan waktu tunda, jadi jika saya sudah memasukkan kata sandi dalam x menit sebelumnya, itu tidak meminta. Karena saya tidak dapat mengandalkan pada yang diminta, saya tidak dapat mempertimbangkan menjeda dan memasukkan kata sandi sebagai bagian dari skrip.

Apakah ada cara untuk memberi tahu aplikasi / OS bahwa saya ingin tetap masuk ke aplikasi dengan hak admin, dan tidak seharusnya bertanya kepada saya? Saya ingin menguras kemungkinan ini sebelum saya mencoba memeriksa keberadaannya dll dalam kode.

Ben Packard
sumber

Jawaban:

0

Sejauh yang saya tahu, batas waktu untuk otorisasi di OS X (jika dilakukan dengan benar) diatur dalam Database Kebijakan yang terletak di etc/authorization, biasanya secara terprogram. Itu terlihat seperti file plist, dan jika suatu item tidak memiliki kunci 'batas waktu', maka ia tidak memiliki batas waktu.

Saya tahu bahwa preferensi biasanya diatur dalam kode menggunakan API Apple (seperti yang ditunjukkan dalam Panduan Pemrograman Layanan Otorisasi Apple dan referensi fungsi ).

Ini adalah file yang dilindungi. Gunakan sesuatu seperti sudo pico /private/etc/authorizationuntuk mengeditnya.

Entri dalam file ini akan memiliki judul menggunakan semacam deskriptor 'com.company.application.right' atau semacamnya (mis. Com.apple.itunes.copy, com.stackexchange.superuser.deleteuser) - yang dikhususkan untuk setiap aplikasi, jadi lihatlah itu. (Saya yakin ini dalam urutan abjad untuk mempermudah).

masukkan deskripsi gambar di sini

Jika tidak ada entri seperti itu, maka aplikasi mungkin mengambil otorisasi dengan cara lain yang saya tidak tahu. Saya baru saja mencoba menambahkan batas waktu ke aplikasi yang saya tulis - itu berhasil. Saya kemudian menghapusnya lagi - dan batas waktu hilang. Ini harusnya berfungsi dalam kasus Anda, saya kira.

Anda menyebutkan panel pengaturan - jika itu melibatkan System Preferences maka saya juga tidak tahu cara kerjanya. Tidak ada cara untuk melakukannya melalui applescript.

Sunting: Jika tidak ada entri seperti itu

LAIN cara pengesahan aplikasi menggunakan metode yang sekarang sudah tidak digunakan lagi dan tidak aman AuthorizationExecuteWithPrivileges. Saya menduga bahwa jika suatu aplikasi tidak memiliki entri sendiri di Database Kebijakan, ia menggunakan AuthorizationExecuteWithPrivileges. Mungkin aplikasi yang sedang Anda coba gunakan ini.

Ada entri dalam Database Kebijakan untuk metode khusus ini yang dipanggil system.privilege.admin, tetapi perhatikan bahwa memodifikasi ini dan menghapus batas waktu mungkin akan mengubah batas waktu untuk semua aplikasi yang digunakan AuthorizationExecuteWithPrivileges, bukan hanya yang Anda coba ubah. Mungkin patut dicoba.

masukkan deskripsi gambar di sini

Jelas
sumber
Terima kasih atas respons terperinci dan keterampilan pembuatan diagram. Sayangnya tidak ada entri di sana untuk aplikasi.
Ben Packard
Aplikasi apa itu?
Jelas
Saya juga menambahkan beberapa informasi, lihat apakah itu membantu!
Jelas