Solo se requiere contraseña cuando se despierta de la suspensión cuando se suspende durante 10 minutos

11

En general, quiero que mi computadora portátil se bloquee cuando está suspendida, pero no cuando la acabo de suspender porque hay un caso de uso en el que ingresar mi contraseña después de que mi computadora portátil se despertó de la suspensión es bastante engorroso. Un buen compromiso es requerir solo la contraseña de inicio de sesión si la computadora portátil se suspendió hace más de 10 minutos. ¿Cómo hago esto?

Yo uso Ubuntu 16.04 con Unity.

UTF-8
fuente
¿Te gusta la función "Bloquear después de x minutos" de Android?
You'reAGitForNotUsingGit
@AndroidDev Bastante sí.
UTF-8

Respuestas:

7

Cree un archivo dentro /lib/systemd/system-sleep/, llamado por ejemplo lightdm::

sudo touch /lib/systemd/system-sleep/lightdm

hacer que este archivo sea ejecutable:

sudo chmod +x /lib/systemd/system-sleep/lightdm

Cada vez que "suspenda" o "reanude" su Ubuntu, este script se ejecutará.

Ábralo usando su editor de texto deseado, por ejemplo: sudo nano /lib/systemd/system-sleep/lightdmy pegue estas líneas en él y luego guárdelo:

#!/bin/sh
set -e

case "$1" in
   pre)

    #Store current timestamp (while suspending)
    /bin/echo "$(date +%s)" > /tmp/_suspend 
    ;;

   post)
      #Compute old and current timestamp
      oldts="$(cat /tmp/_suspend)"
      ts="$(date +%s)"

      #Prompt for password if suspended > 10 minutes
      if [ $((ts-oldts)) -ge 600 ];
       then
         export XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
         /usr/bin/dm-tool lock
      fi

      /bin/rm /tmp/_suspend
   ;;
esac

¿Que hace?

Cuando esté colocando su Ubuntu en modo de "suspensión", este script guardará las marcas de tiempo actuales, luego, mientras reanuda el sistema, verificará las marcas de tiempo antiguas con la actual, si la diferencia fue más de "600" segundo (10 minutos), se mostrará usted "lightdm" pantalla de bloqueo de lo contrario no hace nada.

Para el último paso:

abra "configuración del sistema" -> "Brillo y bloqueo". Inhabilite la solicitud de contraseña después de despertar de la suspensión, porque dejamos el manejo de la pantalla de bloqueo para el script.

ingrese la descripción de la imagen aquí

Después de reiniciar o apagar aún necesita ingresar su contraseña.

Ravexina
fuente
1
Muy agradable +1. Debo señalar que el comentario #Remove password prompetdebería leer#Prompt for password if suspended > 10 minutes
WinEunuuchs2Unix
@ WinEunuuchs2Unix Gracias por señalarlo, primero escribí algo más y luego olvidé cambiar el comentario :-)
Ravexina
0

Agregue un script /lib/systemd/system-sleep/para desbloquear su sesión si el sistema se suspendió por un corto tiempo:

cd /lib/systemd/system-sleep/
sudo touch     unlock_early_suspend
sudo chmod 755 unlock_early_suspend
sudo -H gedit     unlock_early_suspend

Con este contenido:

#!/bin/bash
# Don't ask for password on resume if computer has been suspended for a short time

# Max duration of unlocked suspend (seconds)
SUSPEND_GRACE_TIME=600

file_time()      {  stat --format="%Y" "$1";  }

unlock_session()
{
    # Ubuntu 16.04
    sleep 1; loginctl unlock-sessions
}

# Only interested in suspend/resume events here. For hibernate etc tweak this
if [ "$2" != "suspend" ]; then  exit 0;  fi

# Suspend
if [ "$1" = "pre" ]; then  touch /tmp/last_suspend;  fi

# Resume
if [ "$1" = "post" ]; then
    touch /tmp/last_resume
    last_suspend=`file_time /tmp/last_suspend`
    last_resume=`file_time /tmp/last_resume`
    suspend_time=$[$last_resume - $last_suspend]

    if [ "$suspend_time" -le $SUSPEND_GRACE_TIME ]; then
        unlock_session
    fi
fi
exprimir
fuente
1
Inicialmente pensé que tu camino (desbloqueo activo) es más elegante que el de la otra respuesta (que se bloquea activamente). Pero luego noté que la suya tiene una propiedad extraña: si bloqueo activamente mi pantalla, quiero que se bloquee hasta que se ingrese la contraseña. Sin embargo, su secuencia de comandos desbloqueará la pantalla si la computadora se suspendió por un corto período de tiempo mientras la pantalla ya está bloqueada. Por eso acepté la otra respuesta.
UTF-8
De hecho eso sería un problema =)
lemonsqueeze
-2

Te puedo ayudar con esto. Primero, vaya a la configuración. Seleccione esta configuración:

Brillo_ y bloqueo

Habrá un menú desplegable que dice que la pantalla se apaga.

Screen_Turns_Off

Después de hacer clic en el menú desplegable, cambie ambas configuraciones para que se vean así:

Bloquear pantalla

BJsgoodlife
fuente
Esto no funciona. Configuré el tiempo en 30 segundos para la prueba. De esta manera , tuve que ingresar mi contraseña incluso después de suspender la computadora por solo 5 segundos. De esta manera , llegué directamente a mi escritorio incluso después de suspender mi computadora durante 3 minutos.
UTF-8
Perdón por eso, olvidé un paso.
BJsgoodlife
Esto no deja la computadora en un estado desbloqueado durante un número predeterminado de minutos después de que se inicie la suspensión como se especifica el OP. De hecho, lo bloquea inmediatamente cuando se inicia la suspensión.
b_laoshi