entrada de contraseña doble para acceder a la cuenta

1

Tengo configurada la opción Require password 4 hours after sleep ... en Security and Privacy Preferencias del sistema y estoy ejecutando un script con launchd para suspender mi sesión a una determinada hora del día (vea pregunta para más detalles). El resultado es (cuando el intervalo de tiempo y la hora específica del día se superponen) es que mi cuenta está doblemente bloqueada, una para cada acción, que requiere el ingreso de la contraseña dos veces.

¿Hay alguna forma de verificar (por ejemplo, en un shellscript o Applescript) si mi cuenta ya está bloqueada antes de llamar al comando /System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession -suspend ?

    
pregunta newenglander 10.05.2012 - 19:19

1 respuesta

1

La siguiente secuencia de comandos debe hacer lo que necesita.

PROBADO EN:

  • 10.6.x
  • 10.7.4

Evite suspender el comando si ya se ha alcanzado el tiempo de inicio de sesión forzado de Screensaver.

NOTA: Cambie la variable USER_PATH para que coincida con la del usuario que desea administrar.

#!/bin/bash

USER_PATH="/Users/YOUR_USER"

ELAPSED_TIME=$(ps -eo etime,command | grep "ScreenSaverEngine.app" | grep -v "grep" | sed 's/:.*//' | awk '{print $1}')
CHOSEN_TIME=$(/usr/libexec/PlistBuddy -c "Print:askForPasswordDelay" ${USER_PATH}/Library/Preferences/com.apple.screensaver.plist | sed 's/\..*//')

if [[ ${CHOSEN_TIME} != 0 ]]; then
    if [[ ${CHOSEN_TIME} -ge 60 ]]; then
        CONVERT_TIME=$(expr ${CHOSEN_TIME} / 60)    
    elif [[ ${CHOSEN_TIME} -lt 60 ]]; then
        CONVERT_TIME="${CHOSEN_TIME}"
    fi
fi

if [[ ${ELAPSED_TIME} -lt ${CONVERT_TIME} ]]; then
    /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend   
fi
    
respondido por el E1Suave 10.05.2012 - 21:33

Lea otras preguntas en las etiquetas