当前位置: 技术问答>linux和unix
来看看。。。送高分。
来源: 互联网 发布时间:2014-12-01
本文导语: 1 编程以j000(公共用户)的身份去执行所有的 /home/reg2 要求按日期顺序执行,所有reg2的输出结果直接输出到荧光屏。 /home/j000目录下有一个带suid的外壳。 2 debian:~# w 9:31pm up 2 days, 16:45, 2 users, load average: 0.00, ...
1
编程以j000(公共用户)的身份去执行所有的 /home/reg2
要求按日期顺序执行,所有reg2的输出结果直接输出到荧光屏。
/home/j000目录下有一个带suid的外壳。
2
debian:~# w
9:31pm up 2 days, 16:45, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 61.189.137.2 8:29pm 28:45 0.10s 0.10s -bash
***** *****
root pts/1 61.189.137.2 9:31pm 0.00s 0.04s 0.01s w
debian:~#
debian:~# ps ax
PID TTY STAT TIME COMMAND
7965 pts/0 S 0:00 -bash
*****
终端非正常终止后,系统会留下一些无用的进程,
上面第一行的root登陆后已有28分钟发呆!
编写一个服务程序,他每分钟检查一次,杀死所有发呆时间超过20分钟的外壳。
上例中为7695,注意观察打***的地方。
|
tmp_file=/tmp/task_tmp_file
w | grep pts| tr -s ' ' | cut -f 2-6 -d ' ' > $tmp_file
while read line
do
idle_time=`echo $line | cut -f 6 -d ' '`
grep s $idle_time #to see if it is in seconds
if [ $? -ne 0 ]
then
idle_time=`echo $idle_time |cut -f1 -d ':'`
if [ $idle_time -gt $limit_time ]
then
tty_name=`echo $line|cut -f1 -d ' '`
proc_id=`ps -t $tty_name | sort -b | cut -f2 -d' '`
proc_id=`echo $proc_id |cut -f1 -d' '`
kill -9 $proc_id
fi
fi
done
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
©2012-2021,