Saya mencoba untuk mengaktifkan dan menonaktifkan persyaratan kata sandi screensaver dari baris perintah.
defaults read com.apple.screensaver
memperlihatkan variabel askForPassword yang disetel ke 0 atau 1, tergantung pada apakah saya mengonfigurasi persyaratan kata sandi di Preferensi Sistem atau tidak.
defaults write com.apple.screensaver askForPassword 1
dan
defaults write com.apple.screensaver askForPassword 0
aktifkan dan nonaktifkan pengaturan kata sandi, atau begitulah menurut saya.
Yang saya temukan adalah bahwa perintah memang memeriksa dan menghapus centang pada kotak di Preferensi Sistem di bawah Keamanan tetapi tidak mempengaruhi screensaver sama sekali.
Jika saya mengaktifkan kata sandi di System Preferences dan kemudian menonaktifkannya menggunakan perintah tulis default kedua, kotak centang di System Preferences tidak dicentang, tetapi screensaver masih akan meminta kata sandi. Hanya memeriksa dan menghapus centang pada kotak di Preferensi Sistem yang dapat mengubah perilaku ini sekarang.
Dan jika saya menonaktifkan kata sandi di System Preferences dan kemudian mengaktifkannya menggunakan perintah tulis default pertama, kotak centang di System Preferences dicentang, tetapi screensave tidak akan meminta kata sandi. Hanya menghapus centang dan memeriksa kotak centang di Preferensi Sistem yang mengubah perilaku setelahnya.
Apa yang sedang terjadi?
Saya dapat membayangkan bahwa ini adalah pengaturan global dan saya harus memodifikasi /Library/Preferences/com.apple.screensaver
daripada domain pengguna. Tetapi dalam kasus itu, mengapa ada efek pada kotak centang Preferensi Sistem?
sumber
Jawaban:
Jika Anda tidak dipaksa untuk menggunakan penulisan default, Anda dapat menggunakan perintah berikut. Berinteraksi dengan OS sama seperti jika Anda menggunakan System Preferences.
DIUJI PADA:
CATATAN: Jika perintah dijalankan di dalam skrip yang telah diberikan hak akses root, Anda tidak perlu sudo .
sumber
Saya mengalami masalah serupa, dan menemukan solusi dari pengguna Guillaume pada posting forum ini . Pada dasarnya, Anda perlu memaksa screensaver untuk membaca kembali preferensi persyaratan kata sandi, yang dapat Anda lakukan dengan program C:
Dan kompilasi ini dengan:
Kemudian panggil program ini segera setelah panggilan Anda ke
defaults write
sumber