Estoy tratando de habilitar y deshabilitar el requisito de contraseña del protector de pantalla desde la línea de comando.
defaults read com.apple.screensaver
muestra una variable askForPassword establecida en 0 o 1, dependiendo de si configuré un requisito de contraseña en Preferencias del sistema o no.
defaults write com.apple.screensaver askForPassword 1
y
defaults write com.apple.screensaver askForPassword 0
habilitar y deshabilitar la configuración de contraseña, o eso pensé.
En cambio, lo que encuentro es que los comandos marcan y desmarcan la casilla de verificación en Preferencias del sistema en Seguridad, pero no afectan en absoluto al protector de pantalla.
Si habilito la contraseña en las Preferencias del Sistema y luego la deshabilito usando el segundo comando de escritura predeterminado, la casilla de verificación en las Preferencias del Sistema no está marcada, pero el protector de pantalla seguirá solicitando una contraseña. Solo marcar y desmarcar la casilla de verificación en Preferencias del sistema puede cambiar este comportamiento ahora.
Y si deshabilito la contraseña en Preferencias del sistema y luego la habilito usando el primer comando de escritura predeterminado, la casilla de verificación en Preferencias del sistema está marcada, pero el protector de pantalla no solicitará una contraseña. Solo desmarcando y marcando la casilla de verificación en Preferencias del sistema cambia el comportamiento después.
¿Que esta pasando?
Puedo imaginar que esta es una configuración global y debería modificar /Library/Preferences/com.apple.screensaver
en lugar del dominio del usuario. Pero en ese caso, ¿por qué hay un efecto en la casilla de verificación Preferencias del Sistema?
Si no está obligado a usar la escritura predeterminada , puede usar el siguiente comando. Interactúa con el sistema operativo de la misma manera que si fuera a utilizar las preferencias del sistema.
PROBADO EN:
sudo osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'
NOTA: Si el comando se ejecuta dentro de un script al que se le han otorgado privilegios de root, no necesitará el sudo .
osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'
Me encontré con un problema similar y encontré una solución del usuario Guillaume en esta publicación del foro . Básicamente, debe forzar el protector de pantalla para que vuelva a leer la preferencia de requisito de contraseña, lo que puede hacer con un programa 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;
}
Y compila esto con:
cc -o /tmp/anywhereyouwantit/notif notif.c -framework CoreFoundation
Entonces llame a este programa inmediatamente después de su llamada adefaults write
macaco
macaco
Andrés J. Brehm
Andrés J. Brehm
macaco
JS.