Categories
SysOps

How to automatically logout user from the login shell after period of inactivity

I want to automatically log out the user from the login shell after a defined period of inactivity but leave X Window Terminals untouched. This will allow me to enhance security slightly, as I will not accidentally leave the superuser session running for a long time.

The proper way to achieve this is to set TMOUT variable to the number of seconds to wait for user input using a global profile.

Do not worry as you can keep your application running (like top, mc or long running process) and it will not be terminated.

Execute the following commands to define 120 seconds timeout.

$ cat << EOF | sudo tee /etc/profile.d/tmout.sh
# Execute only outside of X-terminal
[ -z "\$DISPLAY"  ] || return 0

export TMOUT=120
EOF
$ sudo chmod 644 /etc/profile.d/tmout.sh

Changes will take place after the user re-login. Bash will simply terminate after a timeout.