口令篇 UNIX系统的安全( 二 )


值,若将此命令放入.profile文件,就可控制该用户后
续所建文件的存取许可.umask命令与chmod命令的作
用正好相反,它告诉系统在创建文件时不给予什么存
取许可.5.设置用户ID和同组用户ID许可
用户ID许可(SUID)设置和同组用户ID许可(SGID)
可给予可执行的目标文件(只有可执行文件才有意义)
当一个进程执行时就被赋于4个编号,以标识该进
程隶属于谁,分别为实际和有效的UID,实际和有效的
GID.有效的UID和GID一般和实际的UID和GID相同,有
效的UID和GID用于系统确定该进程对于文件的存取许
可.而设置可执行文件的SUID许可将改变上述情况,当
设置了SUID时,进程的有效UID为该可执行文件的所有
者的有效UID,而不是执行该程序的用户的有效UID,因
此,由该程序创建的都有与该程序所有者相同的存取
许可.这样,程序的所有者将可通过程序的控制在有限
的范围内向用户发表不允许被公众访问的信息.
同样,SGID是设置有效GID.
用chmod u s 文件名和chmod u-s文件名来设置
和取消SUID设置.用chmod g s 文件名和chmod g-s文
件名来设置和取消SGID设置.
当文件设置了SUID和SGID后,chown和chgrp命令
将全部取消这些许可.6.cp mv ln和cpio命令
cp拷贝文件时,若目的文件不存在则将同时拷贝
源文件的存取许可,包括SUID和SGID许可.新拷贝的文
件属拷贝的用户所有,故拷贝另人的文件时应小心,不
要被其他用户的SUID程序破坏自己的文件安全.
mv移文件时,新移的文件存取许可与原文件相同,
mv仅改变文件名.只要用户有目录的写和搜索许可,就
可移走该目录中某人的SUID程序且不改变其存取许可.
若目录许可设置不正确,则用户的SUID程序可被移到
一个他不能修改和删除的目录中,将出现安全漏洞.
ln为现有文件建立一个链,即建立一个引用同一
文件的新名字.如目的文件已经存在,则该文件被删除
而代之以新的链,或存在的目的文件不允许用户写它,
则请求用户确认是否删除该文件,只允许在同一文件
系统内建链.若要删除一个SUID文件,就要确认文件的
链接数,只有一个链才能确保该文件被删除.若SUID文
件已有多个链,一种方法是改变其存取许可方式,将同
时修改所有链的存取许可,也可以chmod 000 文件名,
不仅取消了文件的SUID和SGID许可,而且也取消了文
件的全部链.要想找到谁与自己的SUID程序建立了链,
不要立刻删除该程序,系统管理员可用ncheck命令找
到该程序的其它链.
cpio命令用于将目录结构拷贝到一个普通文件中,
而后可再用cpio命令将该普通文件转成目录结构.用
-i选项时,cpio从标准输入设备读文件和目录名表,并
将其内容按档案格式拷贝到标准输出设备,使用-o选
项时,cpio从标准输入设备读取先已建好的档案,重建
目录结构.cpio命令常用以下命令做一完整的目录系
统档案:
find fromdir -print|cpio -o > archive
根据档案文件重建一个目录结构命令为:
cpio -id < archive
cpio的安全约定如下:
(1)档案文件存放每个文件的信息,包括文件所有
者,小组用户,最后修改时间,最后存取时间,
文件存取许可方式.
*根据档案建立的文件保持存放于档案中的
取许可方式.
*从档案中提取的每个文件的所有者和小组用
户设置给运行cpio -i命令的用户,而不是设
置给档案中指出的所有者和小组用户.
*当运行cpio -i命令的用户是root时,被建立
的文件的所有者和小组用户是档案文件所指
出的.
*档案中的SUID/SGID文件被重建时,保持SUID
和SGID许可,如果重建文件的用户不是root,
SUID/SGID许可是档案文件指出的用户/小组

推荐阅读