UNIX系统编程常用库函数说明 (4)

王朝system·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

编译,安装SUID/SGID程序时应按下面的方法

(1)确保所有的SUID(SGID)程序是对于小组和其他用户都是不可写的,存取

权限的限制低于4755(2755)将带来麻烦.只能更严格.4111(2111)将使

其他人无法寻找程序中的安全漏洞.

(2)警惕外来的编码和make/install方法

. 某些make/install方法不加选择地建立SUID/SGID程序.

. 检查违背上述指导原则的SUID/SGID许可的编码.

. 检查makefile文件中可能建立SUID/SGID文件的命令.

4.root程序的设计

有若干个子程序可以从有效UID为0的进程中调用.许多前面提到的子程序,

当从root进程中调用时,将完成和原来不同的处理.主要是忽略了许可权限的检

查.

由root用户运行的程序当然是root进程(SUID除外),因有效UID用于确定文

件的存取权限,所以从具有root的程序中,调用fork()产生的进程,也是root进程.

(1)setuid():从root进程调用setuid()时,其处理有所不同,setuid()将把有

效的和实际的UID都置为指定的值.这个值可以是任何整型数.而对非root

进程则仅能以实际UID或本进程原来有效的UID为变量值调用setuid().

(2)setgid():在系统进程中调用setgid()时,与setuid()类似,将实际和有效

的GID都改变成其参数指定的值.

* 调用以上两个子程序时,应当注意下面几点:

. 调用一次setuid()(setgid())将同时设置有效和实际UID(GID),独立分

别设置有效或实际UID(GID)固然很好,但无法做到这点.

. Setuid()(setgid())可将有效和实际UID(GID)设置成任何整型数,其数

值不必一定与/etc/passwd(/etc/group)中用户(小组)相关联.

. 一旦程序以一个用户的UID了setuid(),该程序就不再做为root运行,也

不可能再获root特权.

(3)chown():当root进程运行chown()时,chown()将不删除文件的SUID和/或

SGID许可,但当非root进程运行chown()时,chown()将取消文件的SUID和/

或SGID许可.

(4)chroot():改变进程对根目录的概念,调用chroot()后,进程就不能把当前

工作目录改变到新的根目录以上的任一目录,所有以/开始的路径搜索,都

从新的根目录开始.

(5)mknod():用于建立一个文件,类似于creat(),差别是mknod()不返回所打开

文件的文件描述符,并且能建立任何类型的文件(普通文件,特殊文件,目录

文件).若从非root进程调用mknod()将执行失败,只有建立FIFO特别文件

(有名管道文件)时例外,其它任何情况下,必须从root进程调用mknod().由

于creat()仅能建立普通文件,mknod()是建立目录文件的唯一途径,因而仅

有root能建立目录,这就是为什么mkdir命令具有SUID许可并属root所有.

一般不从程序中调用mknod().通常用/etc/mknod命令建立特别设备文件而

这些文件一般不能在使用着时建立和删除,mkdir命令用于建立目录.当用

mknod()建立特别文件时,应当注意确从所建的特别文件不允许存取内存,

磁盘,终端和其它设备.

(6)unlink():用于删除文件.参数是要删除文件的路径名指针.当指定了目录

时,必须从root进程调用unlink(),这是必须从root进程调用unlink()的唯

一情况,这就是为什么rmdir命令具有root的SGID许可的原因.

(7)mount(),umount():由root进程调用,分别用于安装和拆卸文件系统.这两

个子程序也被mount和umount命令调用,其参数基本和命令的参数相同.调

用mount(),需要给出一个特别文件和一个目录的指针,特别文件上的文件

系统就将安装在该目录下,调用时还要给出一个标识选项,指定被安装的文

件系统要被读/写(0)还是仅读(1).umount()的参数是要一个要拆卸的特别

文件的指针.

本文由isbase成员编译或原创,如要转载请保持文章的完整性

欢迎访问我们的站点http://www.isbase.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航