发信人: netman.bbs@cs3.xmu.edu.cn (邂逅), 信区: cnhacker
标  题: 程序员安全(2)
发信站: cs3 BBS (Sun Jun 15 23:24:06 1997)
转信站: Lilac!ustcnews!ustcnews!sjtunews!cs3
出  处: cs3.xmu.edu.cn

  (2)进程控制
    *exec()族:包括execl(),execv(),execle(),execve(),execlp()和execvp()
              可将一可执行模快拷贝到调用进程占有的存贮空间.正被调用进
              程执行的程序将不复存在,新程序取代其位置.
     这是UNIX系统中一个程序被执行的唯一方式:用将执行的程序复盖原有的
     程序.
     安全注意事项:
       . 实际的和有效的UID和GID传递给由exec()调入的不具有SUID和SGID许
         可的程序.
       . 如果由exec()调入的程序有SUID和SGID许可,则有效的UID和GID将设
         置给该程序的所有者或小组.
       . 文件建立屏蔽值将传递给新程序.
       . 除设了对exec()关闭标志的文件外,所有打开的文件都传递给新程序.
         用fcntl()子程序可设置对exec()的关闭标志.
    *fork():用来建立新进程.其建立的子进程是与调用fork()的进程(父进程)
            完全相同的拷贝(除了进程号外)
     安全注意事项:
       . 子进程将继承父进程的实际和有效的UID和GID.
       . 子进程继承文件方式建立屏蔽值.
       . 所有打开的文件传给子进程.
    *signal():允许进程处理可能发生的意外事件和中断.
              需要两个参数:信号编号和信号发生时要调用的子程序.
     信号编号定义在signal.h中.
     信号发生时要调用的子程序可由用户编写,也可用系统给的值,如:SIG_IGN
     则信号将被忽略,SIG_DFL则信号将按系统的缺省方式处理.
     如许多与安全有关的程序禁止终端发中断信息(BREAK和DELETE),以免自己
     被用户终端终止运行.
     有些信号使UNIX系统的产生进程的核心转储(进程接收到信号时所占内存
     的内容,有时含有重要信息),此系统子程序可用于禁止核心转储.

--
※ 来源:·古庙钟声 cs3.xmu.edu.cn·[FROM: freedom@cs3.xmu.edu.]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.872毫秒