Ich weiß, dass ich eine TMOUT
Variable festlegen kann, um eine Bash-Sitzung nach einer bestimmten Zeit der Inaktivität automatisch zu beenden. Ich möchte dies jedoch nur auf meine 6 integrierten virtuellen Konsolen anwenden, auf die über ctrl+ alt+ { F1... F6} zugegriffen wird .
Ich benutze fast immer eine Terminal-App, wenn ich ein Terminal öffnen möchte. Wenn ich meinen Computer verlasse, sperre ich den Bildschirm, wodurch niemand auf diese Terminals zugreifen kann. Deshalb möchte ich keine Auszeit haben.
In seltenen Fällen verwende ich jedoch eine meiner virtuellen Konsolen, um an meinem Computer zu arbeiten. Normalerweise liegt es daran, dass meine Gnome-Hauptsitzung eingefroren oder anderweitig unbrauchbar ist. Ich töte die beleidigende App und wechsle dann zu meiner Hauptsitzung zurück.
Darüber hinaus habe ich einige Male vergessen, meine virtuelle Konsole zu verlassen, wenn ich meine Gnome-Sitzung wiederhergestellt habe. Daher ist mein Computer völlig ungeschützt, wenn ich weggehe, da das Sperren des Bildschirms auf Gnome nur die GUI sperrt. Ein Benutzer könnte zu einer virtuellen Konsole wechseln und meinen Gnome-Sperrbildschirm töten oder auf andere Weise mit meinem Computer herumspielen.
Kann ich einen Zeitlimitwert nur für die integrierten virtuellen Konsolen festlegen und gleichzeitig zulassen, dass eine Terminal-App-Sitzung auf unbestimmte Zeit inaktiv bleibt?
quelle
TMOUT
.read
Dies würde sich auf die Integration aller Bash- oder Ksh93-Skripte auswirken, die von Ihrer Anmeldesitzung aus gestartet wurden.read
führt nicht zum Beenden von Skripten, sondernread
zum Fehlschlagen nach einer Zeitüberschreitung, wodurch Skripte auf jede mögliche Weise fehlschlagen können. Es ist unwahrscheinlich, dass es zu Problemen kommt, da es selten vorkommtread
, dass es 10 Minuten lang hängen bleibt, aber es ist immer noch falsch, es zu exportierenTMOUT
(beachten Sie auch, dass ein Skript nach dem ExportTMOUT=1
alle Skripte betrifft , die aus diesem Skript heraus aufgerufen werden, anstatt nur das Skript selbst ).~/.bashrc
damit es alle interaktiven Shells betrifft, nicht nur die Anmeldeshells (und die Annahme~/.profile
oder~/.bash_profile
Quellen~/.bashrc
, die erforderlich sind, um diesen Bash-Fehler zu umgehen).tty | grep -q 'tty[0-9]'
um zu vermeiden, ttyUSB3 oder ttyS1 in Betracht zu ziehen.Dies ist ein guter Fall für das
pam_env.so
PAM-Modul. Anmeldungen für virtuelle Konsolen verwenden daslogin
Programm, sodass Sie/etc/pam.d/login
eine Zeile wie die folgende öffnen und hinzufügen können :Mit der zugehörigen neuen Datei
/etc/vc-environment
:Zwei Vorteile bei der Verwendung von PAM:
TMOUT
später geändert werden ).sudo
.Lesen Sie hier für Details zu diesem Modul.
quelle
TMOUT
.read
Dies würde sich auf die Integration aller Bash- oder Ksh93-Skripte auswirken, die von Ihrer Anmeldesitzung aus gestartet wurden.read
Funktion unabhängig vom Vorhandensein eines Schlüsselworts vom Typ Export in der Umgebungsdatei beeinflusst.Die TMOUT-Lösung hat mir nie gefallen. Erstens, weil es nur funktioniert, wenn Sie Ihre Sitzung an der Eingabeaufforderung verlassen. Wenn Sie es in Vim oder sogar an einer sudo-Passwortabfrage lassen, tritt keine Zeitüberschreitung auf. Und zweitens möchte ich nicht, dass die Sitzung geschlossen wird, sondern dass sie gesperrt wird, genau wie es die grafischen Umgebungen tun.
Der GNU-Bildschirm kann nach einer Leerlaufzeit gesperrt werden, daher habe ich Folgendes getan. Ganz am Anfang habe
~/.bashrc
ich Folgendes hinzugefügt:Dies
exec
ist wichtig, da es sicherstellt, dassscreen
Bash ersetzt wird, und wenn es beendet wird, wird die TTY-Sitzung geschlossen.Und
~/.ttyscreenrc
ich habe folgendes gesagt:So überspringen Sie den Begrüßungsbildschirm des Bildschirms und sperren ihn nach 3 Minuten Inaktivität.
quelle