6 votos

¿Cómo puedo hacer que macOS requiera mi contraseña una vez al día, antes de Touch ID?

Mi Mac está configurado con Touch ID y la mayoría de las veces quiero eso, pero quiero configurar una política tal que la primera vez que lo despierto después de las 6 AM requiera mi contraseña, o tal vez requiera mi contraseña una vez cada 24 horas

¿Es eso posible? ¿Si es así, cómo?

2voto

Douglas Puntos 10417

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:

  • escribir un script en bash que bloquea el equipo. Hay dos métodos...

    • pmset
    • CGSession
  • tienen que script se ejecute cada día en un tiempo prescrito el uso de launchd

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.

1voto

WGroleau Puntos 255

macOS tiene configuraciones para hacerlo apagar / reiniciar en un horario. Si ID Touch ID se implementa como lo está en IOS, entonces la contraseña siempre se requiere después de un reinicio.

Entonces, si lo configura para reiniciar a las cuatro de la mañana, ...

¹ Digo "si" porque mi computadora portátil no tiene identificación táctil

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X