Unix系统管理员安全手册( 三 )


find命令用于搜索目录树,并对目录树上的所有文件执行某种操作,参数是目录名表(指出从哪些起点开始搜索),还可给出一个或多个选项,规定对每个文件执行什么操作.
find . -print 将列出当前工作目录下的目录树的每一个文件.
find / -user bob -print 将列出在系统中可找到的属于bob用户的所有文件.
find /usr/bob -perm 666 -print 将列出/usr/bob目录树下所有存取许可为666的文件.若将666改为-666则将列出所有具有包含了666在内的存取许可方式的文件(如777).
find /usr/bob -type b -print 将列出/usr/bob目录树下所有块特别文件(c为字符特别文件).
find / -user root -perm -4000 -exec ls -l {} ; 是一个较复杂一点的命令,-exec COMMAND ;允许对所找到的每个文件运行指定的命令COMMAND.若COMMAND中含有{},则{}将由find所找到的文件名替换.COMMAND必须以;结束.
以上举例介绍find的用法,各选项可组合使用以达到更强的功能.(6)secure程序
系统管理员应当做一个程序以定期检查系统中的各个系统文件,包括检查设备文件和SUID,SGID程序,尤其要注意检查SUID,SGID程序,检查/etc/passwd和/etc/group文件,寻找久未登录的户头和校验各重要文件是否被修改.
(源程序清单将在今后发表)(7)ncheck命令
用于检查文件系统,只用一个磁盘分区名作为参数,将列出i节点号及相应的文件名.i节点相同的文件为建链文件. 注意:所列出的清单文件名与mount命令的第一个域相同的文件名前部分将不会列出来.因为是做文件系统内部的检查,ncheck并不知道文件系统安装点以上部分的目录. 也可用此命令来搜索文件系统中所有的SUID和SGID程序和设备文件,使用-s选项来完成此项功能.(8)安装和拆卸文件系统
UNIX文件系统是可安装的,这意味着每个文件系统可以连接到整个目录树的任意节点上(根目录总是被安装上的).安装文件系统的目录称为安装点./etc/mount命令用于安装文件系统,用这条命令可将文件系统安装在现有目录结构的任意处.安装文件系统时,安装点的文件和目录都是不可存取的,因此未安装文件系统时,不要将文件存入安装点目录.文件系统安装后,安装点的存取许可方式和所有者将改变为所安装的文件根目录的许可方式和所有者.安装文件系统时要小心:安装点的属性会改变!还要注意新建的文件,除非新文件系统是由标准文件建立的,系统标准文件会设置适当的存取许可方式,否则新文件系统的存取许可将是777!可用-r选项将文件系统安装成只读文件系统.需要写保护的带驱动器和磁盘应当以这种方式来安装.不带任何参数的/etc/mount可获得系统中所安装的文件系统的有关信息. 包括:文件系统被安装的安装点目录,对应/dev中的哪个设备,只读或可读写,安装时间和日期等.从安全的观点来讲,可安装系统的危险来自用户可能请求系统管理员为其安装用户自己的文件系统.如果安装了用户的文件系统,则应在允许用户存取文件系统前,先扫描用户的文件系统,搜索SUID/SGID程序和设备文件.在除了root外任何人不能执行的目录中安装文件系统,用find命令或secure列出可疑文件,删除不属用户所有的文件的SUID/SGID许可.用户的文件系统用完后,可用umount命令卸下文件系统.并将安装点目录的所有者改回root,存取许可改为755.(9)系统目录和文件
UNIX系统中有许多文件不允许用户写,如:/bin,/usr/bin,/usr/lbin, /etc/passwd,/usr/lib/crontab,/unix,/etc/rc,/etc/inittab这样一些文件和目录(大多数的系统目录),可写的目录允许移动文件,会引起安全问题.系统管理员应经常检查系统文件和目录的许可权限和所有者.可做一个程序根据系统提供的规则文件(在/etc/permlist文件中)所描述的文件所有者和许可权规则检查各文件.(源程序清单将在今后发表)

推荐阅读