How can I configure the bash or ksh shell to logout any user automatically after a period of idle time under a Debian Linux or any other UNIX-like operating system?
BASH, zsh, and ksh shell allows to logout all idle user setting a shell variable. The procedure is as follows to automatically log users out after a period of inactivity on a Linux or Unix-like system.
Bash, Zsh or Ksh shell logout inactivity users
You need to set TMOUT variable in seconds. For example, if set TMOUT to 300 seconds (5 minutes) to automatically logout users.
tcsh/csh shell user
You need to set autologout variable in seconds.
Append the following line to your shell startup file (bash/ksh/zsh only):
export TMOUT=300
readonly TMOUT
export TMOUT
If you are using tcsh shell (must be in minutes), enter:
set -r autologout 5
Save and close the file.
We run this script from cron every ten minutes, killing off idle sessions that are older than 30 minutes.
Note the list of exempt users. We wouldn’t want to kill the CEO’s session.
Note that the tcsh example should be
for consistency – here the time is expressed in minutes, not seconds.
Hi,
Is there any way to do this for plain Bourne-Style-Shell (sh).
Thanks.
echo “to logout all ideal user ” | sed ‘s/ideal/idle/g’