Disabilita il requisito della password per lo screensaver dalla riga di comando

10

Sto tentando di abilitare e disabilitare il requisito della password dello screensaver dalla riga di comando.

defaults read com.apple.screensaver

mostra una variabile askForPassword impostata su 0 o 1, a seconda che abbia configurato o meno un requisito di password in Preferenze di Sistema o meno.

defaults write com.apple.screensaver askForPassword 1

e

defaults write com.apple.screensaver askForPassword 0

attiva e disattiva l'impostazione della password, o almeno così pensavo.

Quello che trovo invece è che i comandi in effetti controllano e deselezionano la casella di controllo in Preferenze di Sistema in Sicurezza ma non influenzano affatto lo screensaver.

Se abilito la password in Preferenze di Sistema e poi la disabilita usando il secondo comando di default, la casella di controllo in Preferenze di Sistema è deselezionata, ma lo screensaver richiederà comunque una password. Solo il controllo e la deselezione della casella di controllo in Preferenze di sistema possono modificare questo comportamento ora.

E se disattivo la password in Preferenze di Sistema e poi la abilito usando il primo comando di scrittura dei default, la casella di controllo in Preferenze di Sistema è spuntata, ma lo screensaver non chiederà una password. Solo deselezionando e spuntando la casella di controllo in Preferenze di Sistema cambia il comportamento in seguito.

Che sta succedendo?

Posso immaginare che questa è un'impostazione globale e dovrei modificare /Library/Preferences/com.apple.screensaver invece del dominio utente. Ma in tal caso, perché c'è un effetto sulla casella di controllo Preferenze di sistema?

    
posta Andrew J. Brehm 16.05.2012 - 11:47
fonte

2 risposte

7

Se non sei obbligato a usare default write puoi usare il seguente comando. Interagisce con il sistema operativo come se si utilizzassero le Preferenze di sistema.

TESTED ON:

  • 10.5.x
  • 10.6.x
  • 10.7.x
  • 10.8.x
  • 10.9.x
sudo osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'

NOTA: se il comando viene eseguito all'interno di uno script a cui sono stati assegnati i privilegi di root, non è necessario il sudo .

osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'
    
risposta data 16.05.2012 - 14:29
fonte
3

Mi sono imbattuto in un problema simile e ho trovato una soluzione dell'utente Guillaume su questo post sul forum . Fondamentalmente, è necessario forzare lo screensaver a rileggere la preferenza del requisito della password, cosa che si può fare con un programma C:

#include <CoreFoundation/CoreFoundation.h>

int main(int argc, char ** argv)
{
    CFMessagePortRef port = CFMessagePortCreateRemote(NULL, CFSTR("com.apple.loginwindow.notify"));
    CFMessagePortSendRequest(port, 500, 0, 0, 0, 0, 0);
    CFRelease(port);
    return 0;
}

E compila questo con:

cc -o /tmp/anywhereyouwantit/notif notif.c -framework CoreFoundation

Quindi chiama questo programma subito dopo la tua chiamata a defaults write

    
risposta data 17.11.2013 - 19:23
fonte

Leggi altre domande sui tag