When using the virtual terminals on TTY 1-6 [*], it's sometimes easy to forget to log out: The screen goes blank after a while, but I'm still logged in - no password required, anyone can use my account. (Or I switch to another TTY, and forget the other one...)

I'd like to have screensaver-like functionality that locks the terminal after 3 minutes, and then requires a password. How do I set this up?

3 Answers
3

Implementing a screensaver that way for the TTYs is hard, as you cannot query the X server for the idle time.

If you discipline yourself, you can use the vlock command to explicitly lock a terminal.

A workaround for the timeout approach would be to ssh to localhost and let the ssh connection timeout take care of the rest. The timeout is specified under LoginGraceTime in /etc/ssh/sshd_config and is 120 seconds by default.

If you run exec ssh localhost, you would be automatically logged out when the ssh connection times out. To keep your programs running past the timeout, you could run them via screen.

Both vlock and exec ssh localhost are great ideas (I will definitely use them)! You're right, it's probably hard to query the idle time without an X server. However, I wonder why the screen does go blank after some time (and wakes up on keypress)? So maybe the same "trigger" could be used to lock the screen automatically somehow?
–
Chris LercherJun 27 '11 at 14:22

I just found out, that the screen blanking (not the locking) can be adjusted by setterm -blank [0-60], see man page.
–
Chris LercherJun 27 '11 at 15:26

@Egil exec ssh localhost does not logout automaticall after LoginGraceTime for me. I waited for about 8 minutes but nothing occured!
–
PHP LearnerJul 30 at 6:55