可怜的小家伙们哪,连暑假都不得舒心 [好文,赞]

转载 2013年12月04日 14:51:43

可怜的小家伙们哪,连暑假都不得舒心

转载: http://tieba.baidu.com/p/2493185219?pid=36295911662&cid=#36295911662

作者: http://tieba.baidu.com/home/main?un=mephistohk&fr=pb


假设用户使用 bash。当用户登录时,bash 会去执行 /etc/profile 中的内容。这种机制使得系统管理员可以为所有用户提供共享的的配置,大大方便了系统管理。为了锁定帐户,管理员可以在 /etc/profile 中用 at 命令设置计划任务。时间一到便强制退出。同时采用 passwd -l 来锁定帐户。等过了今天后再用 passwd -u 来解锁帐户。

问题是此时 bash 是通过用户本身的权限去执行 /etc/profile 中的内容。也就是说,用户虽然没有权限去修改 /etc/profile 中的内容,但却有机会终止执行 /etc/profile 中的内容(飞快地按 CTRL-C 或 CTRL-BREAK)。一旦用户掌握了这种诀窍,他们就有机会绕过 /etc/profile 里面的种种设置。如果用户懂一点 at 命令系列的使用方式,他们甚至可以用 atrm 将预设的计划任务取消,令这种机制形同虚设(可别小看“熊孩子”们,现在的小家伙们聪明着呢。我那可爱的外甥女就曾经让我吃过这个苦头。当时她居然找到办法绕过了对她帐户设置的限制,用她的笔记本电脑偷偷打开了我书房的门锁,半夜溜进去看动漫看到天亮。要不是所有的操作 atlantis 都会记录下来,第二天就导致她“罪行败露”,差点就阴沟里翻了船)。所以,通过 /etc/profile 来设置帐户锁定并不可靠。

下面提供一种利用 linux 的 CRON 机制来监测、锁定、解锁帐户的方法。该脚本以 root 帐户执行,因此普通用户既无法修改也无法终止。可以有效地执行监测任务。不过我只是信手写了一下,只草草调试了一遍,LZ 使用的话再进一步调试一下为好。

#!/bin/bash

#
# 为保持缩进,脚本中使用了部分全角的控制,使用时可通过文本编辑器将之替换为两个空格即可
# 使用时应注意为脚本设置可执行权限,例如:chmod 744 /root/lifttime
#

#
# 创建 /etc/cron.d/lifttime 文件
#
# 添加以下记录:
#
# 0-59 * * * * root /root/lifttime
#
# 根据该设置 cron 进程会每分钟执行 1 次 /root/lifttime 脚本
#
#

#
# 供脚本记录日期,仅记录“日”[01-31]即可。
#
# 该文件由脚本自动创建,使用者无需关注
#
w_timefile=/var/tmp/timefile

#
# 创建 /root/user 文件 记录被控制的帐号,每行一个帐户名称
#
# 为简单起见这里没有考虑某些帐户名称整包含其它帐户名称的特殊情况,但这不难避免
#
w_accountfile=/root/user

#
# 帐户可用时间,以分钟为单位。缺省设置为 30 分钟后锁定
#
w_lifttime=30

#
# 被锁定的帐户需要到明日才能解锁
#
if [ -f $w_timefile ]; then
  w_stm=`cat $w_timefile`
  w_etm=`date +%d`
  if [ $w_etm -ne $w_stm ]; then
# 比对日期后为所有被控制的帐户解锁
cat $w_accountfile | while read w_user
do
  passwd -u $w_user  
done
# 记录当天的日期以供明日以后解锁时比对
date "+%d" > $w_timefile
  fi
else
# 创建日期文件
  date "+%d" > $w_timefile
fi

#
# 获取 who 命令显示的用户登录时间,并与当前时间比对来确定是否需要锁定
#
who |while read line
do
  w_name=`echo $line | cut -d' ' -f1`
  if [ `grep $w_name $w_accountfile` ]; then
# 获取用户登录时间
w_date=`echo $line | cut -d' ' -f3-4`
# 获取当前时间
w_stm=`date -d "$w_date" +%s`
# 用户登录时间 + 帐户可用时间即为锁定时间
w_stm=$((w_stm + w_lifttime))
# 获取当前时间
w_etm=`date +%s`

# 当前时间超过锁定时间即执行锁定
if [ $w_etm -gt $w_stm ]; then
#
# 这里需要注意,由于 pkill 在终止进程时并不一定会从登录 shell 进程开始有序进行,
#  因此有时会造成 XServer 无法安全终止导致图形界面死锁。
#  解决的方法是从用户登录 shell 开始终止,这样 unix 进程管理系统会尽可能保证
#  有序地终止全部用户进程。
#

# 从 /etc/passwd 中获取用户登录 shell,以确保 shell 进程首先收到终止信号
  w_shell=`grep ^$w_name: /etc/passwd | cut -d":" -f7`
  w_shell=`basename $w_shell`
# 终止用户 shell 进程
  pkill -9 -u $w_name $w_shell
# 锁定帐户,直到过了今天后被前面的代码解锁
  passwd -l $w_name
fi
  fi
done

不过现在毕竟是暑假,小家伙们适当玩玩也不是坏事,我看是不是能多给他们点时间。或者把这个脚本改进一下,将帐户文件(w_accountfile)的功能扩展一下,添加一个锁定时长项,为每个帐户分别设置锁定时间。这样表现良好的小家伙就多给点时间,表现有待提高的那就只好先委屈他们一下了。这样你这个长辈也更容易在小家伙们面前提高威信不是。


HDU--杭电--2102--A计划--深搜

A计划 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...
  • hncu1206401liuhao
  • hncu1206401liuhao
  • 2013年10月14日 23:55
  • 1302

HDU2102:A计划(BFS)

Problem Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉...
  • libin56842
  • libin56842
  • 2014年12月13日 13:32
  • 2124

hdu2102(广搜)

Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老。年迈的...
  • martinue
  • martinue
  • 2015年08月05日 19:55
  • 428

bzoj 2097: [Usaco2010 Dec]Exercise 奶牛健美操 (二分答案+贪心)

2097: [Usaco2010 Dec]Exercise 奶牛健美操 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 305  Solved: 1...
  • clover_hxy
  • clover_hxy
  • 2016年09月26日 21:51
  • 315

BZOJ 2097: [Usaco2010 Dec]Exercise 奶牛健美操 二分 贪心

2097: [Usaco2010 Dec]Exercise 奶牛健美操 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 335  Solved: 169...
  • BlackJack_
  • BlackJack_
  • 2017年05月13日 23:13
  • 249

2203 宿舍楼跳闸事件

描述 夏天来了,可怜的北化童鞋们可能会遇到这样的问题:当自己正在WOW公会活动巫妖王将要倒下时,“啪”,屏幕显示“已从服务器断开连接”;或者是当自己刚Triple Kill将要上高地时,屏幕显示“...
  • jj12345jj198999
  • jj12345jj198999
  • 2012年02月21日 16:49
  • 1313

我的暑假acm集训总结

自结束暑假的集训到现在刚好一星期了,感觉暑假能留在学校参加这种类型的学习是一件非常快乐并难忘的事。记得两个月前当我得知自己被选进集训队时真的是太高兴了,那是我上学期最自豪的事,并且很lucky~毕竟我...
  • qq_30076791
  • qq_30076791
  • 2015年09月02日 23:54
  • 899

可怜的白领们

  • wangchinaking
  • wangchinaking
  • 2010年05月25日 18:21
  • 611

那是这些小家伙们啃的

门十分破旧的快乐的翅膀 今天的门十分破旧的快乐的翅膀,从此以后,爸爸妈妈带我去游泳官游泳,又喝了点自来水,那是这些小家伙们啃的,我就扶着池边,小雯,让我扶着它在水里漂,汇成了一条条小溪,农夫也不...
  • u011412130
  • u011412130
  • 2013年11月15日 15:45
  • 448

可怜的女教师

    曾经很阳光的女老师四川在线12月8日讯 近段时间,一篇名为《女教师被逼向学生下跪后疯了》的帖子在网上疯传。帖子讲述了攀枝花市新华中学28岁的女教师李虹蓉,当着两名校领导,向一名学生及其亲属的面...
  • lnhyd2002
  • lnhyd2002
  • 2009年02月10日 10:59
  • 613
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:可怜的小家伙们哪,连暑假都不得舒心 [好文,赞]
举报原因:
原因补充:

(最多只允许输入30个字)