Configure BASH, KSH, TCSH, ZSH Shell To Logout User Automatically After Idle Time

by Vivek Gite on March 30, 2008 · 1 comment

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:

Share this with other sys admins!
Facebook it - Tweet it - Print it -

{ 1 comment… read it below or add one }

1 MikeM December 19, 2008

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”);
}

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">
What is 2 + 13 ?
Please leave these two fields as-is:
Solve the simple math so we know that you are a human and not a bot.




Previous post:

Next post: