加州大学期中设计题

sh/bash/dash/ksh/zsh等Shell脚本
回复
upbash
帖子: 2
注册时间: 2009-10-16 3:37

加州大学期中设计题

#1

帖子 upbash » 2009-10-16 3:39

一个在加州大学念书的朋友shell script课的期中设计题,要求2天内交,迟交一天扣10%,迟交两天扣50%,迟交三天视为未完成。朋友说班里好多人在规定时间内都没能完整实现,现在拿过来给大家探讨探讨。
PS:可以谈思路,也可以实现。只要你来凑个热闹,都是欢迎的。朋友说,一个人能完成几乎不可能。

程序名:安全检测

写一个程序要求提供一个安全检测的简单菜单给管理者。除了退出选项外,菜单还有四个基本选项如下:
1)密码文件登录检测(Password file entry checking)---检查密码文件的每一行,如果登录的是normal用户(UID>500 或者root)你要检测三方面:第一,shell列表是一个与所给文件 /ect/shells一样的有效shell。第二,home directory权限是700。第三,用户是否在过去一周的午夜(12pm)到早上6点(6am)登录系统的。对于non-normal用户,你要检查shell列表不在文件 /etc/shells中,确定这个用户上周没有登录系统。最后要确认仅有一个uid=0的帐号就是root帐号。

2)进程检测(Process checking)-----你要检查当前执行的进程列表,找出你是否创建了名为”bad-processes”的进程。发现任何不良进程,则生成输出行,格式为:pid process_name user_name time_started. 按进程ID进行排序。

3)路径检测(PATH check)--------检测关联路径变量。首先,检查路径中是否包含当前目录,并给出错误信息。然后检查指定目录中的每一个可执行程序,看看那些有setuid位打开并且有write 权限开放给任何人(除owner)的程序。输出错误文件的完整路径列表,分三个类型:setuid on and writable,setuid on and not writable, setuid off and writable,每个排列按字母顺序排序。

4)目录 /etc检测(/etc directory check)------- /etc目录的内容检查出错误。首先,检查任何人(除了root)有write access的任何文件,显示文件名字,用户名字和权限,文件名按字母顺序排序。然后,检查是否有文件在指定的天数时间内被修改,罗列它们的文件名和修改时间,按名字排序。最后,检查是否有文件的属性在指定的天数时间内被修改,罗列这些文件名和修改时间,按名字排序。
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

Re: 加州大学期中设计题

#2

帖子 yjcong » 2009-10-16 6:17

我怎么觉得这是一个shell基本命令大杂烩呢?

除了不晓得有什么特征的程序是不良进程外, 貌似剩下的就是繁琐了
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
cmdblock
帖子: 307
注册时间: 2008-12-01 7:52
来自: 蜀山

Re: 加州大学期中设计题

#3

帖子 cmdblock » 2009-10-16 7:11

ee出来搞定
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 加州大学期中设计题

#4

帖子 tenzu » 2009-10-16 8:33

cmdblock 写了:ee出来搞腚
回复