Q. How can I configure the bash shell to logout any user automatically after a period of idle time under Debian Linux or any other UNIX like operating system?
A. BASH, zsh, and ksh allows to logout all ideal user using a shell variable.
bash, zsh or ksh shell
set TMOUT variable in seconds.
tcsh shell
set autologout variable in seconds.
Append following line to your shell startup file (bash/ksh/zsh):
export TMOUT=300
If you are using tcsh, enter:
set autologout=300
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- My 10 UNIX Command Line Mistakes
- Linux: 20 Iptables Examples For New SysAdmins

- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
Facebook it - Tweet it - Print it -


{ 1 comment… read it below or add one }
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.
#########################
#! /usr/bin/awk -f
BEGIN {
system(“who -u | sort +5 > /tmp/loginfile”);
system(“echo User Sessions Killed > /tmp/killedlogins”);
system(“echo `date` >> /tmp/killedlogins”);
while (getline = 1) || (timearray[2] >= 30)) &&
# list of exempt users below
($1 != “root”) &&
($1 != “legacy”) &&
#($1 != “ceo”) &&
#($1 != “cio”) &&
#
{ {
system(“ps -ef | grep ” $1 ” | awk ‘{print $2}’ | xargs kill -KILL”);
print $1, “[Idle " $6 "] Session terminated from ” $8 >> “/tmp/killedlogins”;
};
};
}
system(“rm /tmp/loginfile”);
system(“chmod 644 /tmp/killedlogins”);
}