用户安全( 二 )


.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许可是档案文件指出的用户/小组的许可.
(2)现存文件与cpio档案中的文件同名时,若现存文件比档案中的文件更新,

推荐阅读