Deshabilitar el requisito de contraseña del protector de pantalla desde la línea de comandos

10

Estoy intentando habilitar y deshabilitar el requisito de contraseña del protector de pantalla desde la línea de comandos.

defaults read com.apple.screensaver

muestra una variable askForPassword configurada 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 la contraseña, o eso pensé.

Lo que encuentro en su lugar es que los comandos de hecho marcan y deseleccionan la casilla de verificación en Preferencias del sistema en Seguridad pero no afectan el protector de pantalla en absoluto.

Si habilito la contraseña en Preferencias del sistema y luego la inhabilito usando el segundo comando de escritura predeterminado, la casilla de verificación en Preferencias del sistema no está marcada, pero el protector de pantalla aún solicitará una contraseña. Solo marcando y desmarcando 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 la pantalla no pedirá una contraseña. Solo al desmarcar y marcar la casilla de verificación en Preferencias del sistema se modifica el comportamiento posteriormente.

¿Qué está 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 de Preferencias del Sistema?

    
pregunta Andrew J. Brehm 16.05.2012 - 11:47

2 respuestas

7

Si no está obligado a usar escritura predeterminada , puede usar el siguiente comando. Interactúa con el sistema operativo de la misma forma que si utilizara las Preferencias del sistema.

PROBADO:

  • 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: Si el comando se ejecuta dentro de un script al que se le han otorgado privilegios de root, no necesitaría el sudo .

osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'
    
respondido por el E1Suave 16.05.2012 - 14:29
3

Me encontré con un problema similar y encontré una solución del usuario Guillaume en esta publicación en el foro . Básicamente, debe forzar al protector de pantalla a volver a leer la preferencia de requisito de contraseña, lo que puede hacer con un programa en 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

Luego, llame a este programa inmediatamente después de su llamada a defaults write

    
respondido por el Chris C 17.11.2013 - 19:23

Lea otras preguntas en las etiquetas