Si no has puesto ya sus preferencias de seguridad para requerir una contraseña después de una cierta cantidad de sueño y/o protector de pantalla, no hay realmente ningún beneficio para forzar un inicio de sesión en el inicio de la jornada - se ha vulnerables de todo ese tiempo y que el bloqueo a las 6:00am sólo para ser desbloqueado de nuevo para el resto del día lo hace un discutible política de seguridad.
Pero, si desea forzar la autenticación de eventos todos los días a las 6:00am usted necesitará hacer lo siguiente:
Una nota acerca de las secuencias de comandos/terminal de comandos
Os animo a probar primero antes de entregarlas a launchd
. Simplemente escriba el comando(s) en la Terminal para ver si funcionan.
Se debe establecer la secuencia de comandos para ser ejecutable con el comando chmod +x <nameofscript>
o esto no funcionará en absoluto.
El uso de pmset
Asumiendo que usted tiene la opción "solicitar Contraseña" después de una cierta cantidad de tiempo después de bloquear la pantalla o activar el protector de pantalla, puede utilizar el siguiente comando en un script de bash a dormir a su equipo una vez al día:
pmset sleepnow
La secuencia de comandos puede ser guardado en ~/Library/Scripts
y se puede llamar lo que quieras. Vamos a usar sleep1.sh
para este ejemplo
#!/bin/bash
#
/usr/bin/pmset sleepnow
Ejecute el script y su Mac inmediatamente ir a dormir y si usted tiene una contraseña, dependiendo del intervalo de tiempo establecido, una vez que se despierta, se le pedirá una contraseña.
El Uso De CGSession
Para ello se utiliza el "cambio Rápido de Usuario" mecanismo de bloqueo de su escritorio. Puede probar con el siguiente comando:
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
Cuando se ejecuta este comando, el escritorio se bloquea y usted debe ser recibida con una pantalla de inicio de sesión donde usted tiene que seleccionar un usuario (si tiene varias) o introduzca un nombre de usuario y contraseña.
La secuencia de comandos, como en el ejemplo anterior se pueden guardar en ~/Library/Scripts
y también se puede llamar lo que quieras. Vamos a usar sleep2.sh
para este ejemplo.
#!/bin/bash
#
# Get User ID
id=$(id -u <username>
# Put the system to sleep but switch to current user
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend -switchToUserID $id
Nota: Si va a hacer esto para todos los usuarios registrados (si tiene varios usuarios en la máquina), cambiar el id
línea para parecerse a esto:
id=$(id -u `whoami`)
Esto se asegurará de que el comando utiliza el id de usuario del usuario actualmente conectado.
El uso de launchd
para hacer esta carrera todos los días
Para conseguir que esto se ejecute cada día, necesitamos tener un demonio de una patada en un tiempo establecido. macOS viene con una herramienta de este tipo y se llama launchd
. Entro en más detalles sobre esto en el post
launchd formato plist para la ejecución de un comando en un momento específico en un día de la semana. Sin embargo, para nuestros propósitos aquí, vamos a utilizar un básico .plist
iniciar esta secuencia de comandos cada mañana. Me gusta usar la convención de nomenclatura de archivos com.user.XXXX.plist
Reemplazar "XXX" con lo que te gusta, para este ejemplo, estoy usando com.user.lockmachine.plist
.
También asegúrese de hacer referencia a la secuencia de comandos va a usar, script1.sh
o script2.sh
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.lockmachine</string>
<key>ProgramArguments</key>
<array>
<string>/Users/<username>/Library/Scripts/script1.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>6</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
¿Cómo desea ejecutar este demonio?
Donde se pone el script de la materia. Ver el post vinculado para obtener más detalles, pero decidir si queremos que esto sea sólo para usted o para todos los usuarios. He aquí un resumen rápido:
- Sólo usted - lo puso en
~/Library/LaunchAgents
- Para todos los usuarios - lo puso en
/Library/LaunchAgents
A continuación, desde el directorio donde se pone el recién creado .plist
, cargarlo usando launchctl
sudo lauchctl load com.user.lockmachine.plist
Autenticar lejos!
Estás hecho. Una vez por día a las 6 de la mañana el equipo se ve obligado a ir a dormir o tener la sesión de conmutación (dependiendo de la secuencia de comandos seleccionada) donde te verás obligado a autenticar. No hay ningún punto en hacer esto en el inicio de sesión o en el arranque porque si usted esta preocupado acerca de la seguridad, usted no tendría el inicio de sesión automático habilitado para eludir la autenticación.