TTY [1-6]: Bildschirm nach Verzögerung sperren (wie ein Bildschirmschoner)

10

Wenn Sie die virtuellen Terminals auf TTY 1-6 [*] verwenden , können Sie manchmal leicht vergessen, sich abzumelden: Der Bildschirm wird nach einer Weile leer, aber ich bin immer noch angemeldet - kein Passwort erforderlich, jeder kann mein Konto verwenden. (Oder ich wechsle zu einem anderen TTY und vergesse den anderen ...)

Ich hätte gerne eine Bildschirmschoner-ähnliche Funktion, die das Terminal nach 3 Minuten sperrt und dann ein Passwort benötigt. Wie richte ich das ein?


[*] Mit TTY 1-6 meine ich CTRLALTF1- CTRLALTF6( kein X Server )

Chris Lercher
quelle

Antworten:

6

Ich weiß, dass dies alt ist, aber ich habe Sie auf Google gefunden, um nach derselben Frage zu suchen.

Wenn Sie Bash verwenden, ist dies kein Problem. Verwenden Sie einfach die Umgebungsvariable 'TMOUT', die von bash für eine automatische Abmeldung (Abmelden! Nicht sperren) in den angegebenen Sekunden verwendet wird.

Sie können einfach '' TMOUT = 5 '' in jede Bash eingeben und sehen, was passiert.

Für die Konfiguration in meinem Bashrc verwende ich

# Autologout auf tty1-6 nach 30 Minuten
if [[$ (tty) = ~ / dev \ / tty [1-6]]]; dann TMOUT = 1800; fi

Ich werde also nicht auf einem Terminal-Emulator abgemeldet, der normalerweise unter / dev / pty / # steht, und werde bereits von meinem Bildschirmschoner als Teil meines Desktops gesperrt

Blaimi
quelle
5

Das Implementieren eines Bildschirmschoners auf diese Weise für die TTYs ist schwierig, da Sie den X-Server nicht nach der Leerlaufzeit abfragen können.

Wenn Sie sich disziplinieren, können Sie mit dem vlockBefehl ein Terminal explizit sperren.

Eine Problemumgehung für den Timeout-Ansatz wäre, ssh an localhost zu senden und das Timeout für die ssh-Verbindung den Rest erledigen zu lassen. Das Zeitlimit wird unter LoginGraceTimein angegeben /etc/ssh/sshd_configund beträgt standardmäßig 120 Sekunden.

Wenn Sie ausführen exec ssh localhost, werden Sie automatisch abgemeldet, wenn die SSH-Verbindung abläuft. Damit Ihre Programme nach Ablauf des Zeitlimits weiterhin ausgeführt werden, können Sie sie über ausführen screen.

Egil
quelle
Beide vlockund exec ssh localhostsind große Ideen (Ich werde sie auf jeden Fall verwenden)! Sie haben Recht, es ist wahrscheinlich schwierig, die Leerlaufzeit ohne einen X-Server abzufragen. Ich frage mich jedoch, warum der Bildschirm nach einiger Zeit leer wird (und beim Drücken der Taste aufwacht). Vielleicht könnte der gleiche "Auslöser" verwendet werden, um den Bildschirm irgendwie automatisch zu sperren?
Chris Lercher
Ich habe gerade herausgefunden, dass die Bildschirmausblendung (nicht die Sperrung) durch angepasst werden kann setterm -blank [0-60], siehe Manpage .
Chris Lercher
@Egil meldet exec ssh localhostsich LoginGraceTimefür mich nicht automatisch ab . Ich habe ungefähr 8 Minuten gewartet, aber es ist nichts passiert!
PHP Learner