Benötigen Sie nur ein Passwort, wenn Sie von Suspend aufwachen, wenn Sie 10 Minuten lang suspendiert sind

11

Ich möchte im Allgemeinen, dass mein Laptop gesperrt wird, wenn er angehalten wird, aber nicht, wenn ich ihn nur angehalten habe, da es einen Anwendungsfall gibt, in dem die Eingabe meines Passworts nach dem Aufwachen meines Laptops aus dem Anhalten ziemlich umständlich ist. Ein guter Kompromiss besteht darin, das Anmeldekennwort nur zu benötigen, wenn der Laptop vor mehr als 10 Minuten angehalten wurde. Wie mache ich das?

Ich benutze Ubuntu 16.04 mit Unity.

UTF-8
quelle
Wie Android "Funktion nach x Minuten sperren"?
You'reAGitForNotUsingGit
@AndroidDev So ziemlich ja.
UTF-8

Antworten:

7

Erstellen Sie eine Datei /lib/systemd/system-sleep/mit dem Namen zB lightdm::

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

Machen Sie diese Datei ausführbar:

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

Jedes Mal, wenn Sie Ihr Ubuntu "aussetzen" oder "fortsetzen", wird dieses Skript ausgeführt.

Öffnen Sie es mit dem gewünschten Texteditor, z. B.: sudo nano /lib/systemd/system-sleep/lightdm, Fügen Sie diese Zeilen ein und speichern Sie es:

#!/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

Was es macht?

Wenn Sie Ihr Ubuntu in den "Schlaf" -Modus versetzen, speichert dieses Skript aktuelle Zeitstempel. Wenn Sie das System fortsetzen, werden alte Zeitstempel mit dem aktuellen überprüft. Wenn der Unterschied mehr als "600" Sekunden (10 Minuten) beträgt, wird dies angezeigt Sie "lightdm" Sperrbildschirm sonst tut es nichts.

Für den letzten Schritt:

Öffnen Sie "Systemeinstellungen" -> "Helligkeit & Sperre". Deaktivieren Sie das Abfragen des Passworts nach dem Aufwachen aus dem Suspend, da wir die Verwaltung des Sperrbildschirms dem Skript überlassen.

Geben Sie hier die Bildbeschreibung ein

Nach dem Neustart oder Herunterfahren müssen Sie noch Ihr Passwort eingeben.

Ravexina
quelle
1
Sehr schön +1. Ich sollte darauf hinweisen, Kommentar #Remove password prompetsollte lauten#Prompt for password if suspended > 10 minutes
WinEunuuchs2Unix
@ WinEunuuchs2Unix Danke für den Hinweis, ich habe zuerst etwas anderes geschrieben, dann habe ich vergessen, den Kommentar zu ändern :-)
Ravexina
0

Fügen Sie ein Skript hinzu /lib/systemd/system-sleep/, um Ihre Sitzung zu entsperren, wenn das System für kurze Zeit angehalten wurde:

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

Mit diesem Inhalt:

#!/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
Zitronenqueeze
quelle
1
Anfangs dachte ich, dein Weg (aktiv entsperren) ist eleganter als der der anderen Antwort (die aktiv sperrt). Aber dann habe ich festgestellt, dass Ihre eine seltsame Eigenschaft hat: Wenn ich meinen Bildschirm aktiv sperre, möchte ich, dass er gesperrt wird, bis das Passwort eingegeben wird. Ihr Skript würde jedoch den Bildschirm entsperren, wenn der Computer für einen kurzen Zeitraum angehalten würde, während der Bildschirm bereits gesperrt ist. Deshalb habe ich die andere Antwort akzeptiert.
UTF-8
In der Tat wäre das ein Problem =)
Zitronenqueeze
-2

Ich kann dir dabei helfen. Gehen Sie zunächst zu den Einstellungen. Wählen Sie diese Einstellung:

Helligkeit_ & Sperre

Es wird ein Dropdown-Menü mit der Meldung "Bildschirm wird ausgeschaltet" angezeigt.

Screen_Turns_Off

Nachdem Sie auf das Dropdown-Menü geklickt haben, ändern Sie beide Einstellungen so, dass sie folgendermaßen aussehen:

Lock_Screen

BJsgoodlife
quelle
Das funktioniert nicht. Ich habe die Zeit zum Testen auf 30 Sekunden eingestellt. So musste ich mein Passwort eingeben, auch nachdem ich den Computer nur 5 Sekunden lang angehalten hatte. Auf diese Weise gelangte ich direkt zu meinem Desktop, selbst nachdem ich meinen Computer 3 Minuten lang angehalten hatte.
UTF-8
Entschuldigung, ich habe einen Schritt vergessen.
BJsgoodlife
Dadurch bleibt der Computer für eine vorgegebene Anzahl von Minuten nicht in einem entsperrten Zustand, nachdem das Anhalten gemäß dem angegebenen OP eingeleitet wurde. Tatsächlich wird es sofort gesperrt, wenn Suspend gestartet wird.
b_laoshi