| 网站首页 | 模板 | 资料 | 源码 | 工具 | 开发 | 设计 | 安全 | 项目 | 网络 | 图片 | 系统 | 数据库 | 博客 | 会员中心 | 小说 | 
MYFTP 精品资料下载
网络学院
学习资料
源码模版
您现在的位置: 精品下载 >> 项目 >> 编码 >> 项目管理正文 用户登录 新用户注册
securityofprogramer-7            【字体:
securityofprogramer-7
作者:佚名    项目管理来源:不详    点击数:    更新时间:2007-12-20


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许可.
或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()的参数是要一个要拆卸的特别

项目管理录入:chqnet    责任编辑:chqnet 
  • 上一个项目管理:

  • 下一个项目管理:
  • 最新热点 最新推荐 相关项目管理
    UNF&&pr1present:WritingLin…
    AR利用SQLSERVER的UDP溢出的…
    securityofprogramer-6
    securityofprogramer-4
    securityofprogramer-5
    securityofprogramer-1
    securityofprogramer-2
    securityofprogramer-3
    共享库注射--injectso实例
    UNIX下c语言的图形编程--cur…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)