一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

LIDS精通与进阶(中)

时间:2008-01-12 编辑:简简单单 来源:一聚教程网

作者:chaobowang@sina.com
四、保护重要进程
    进程是操作系统的动态入口。内核里有两个特殊进程,进程ID 0 (swapd) 和进程ID 1(init)。Init进程是在系统启动的时候所有进程的父进程。
    1、不可杀死的进程。
    就象你可以看到是否有人要夺得root特权一样,我们可以很容易的杀死那些该内核发送特别信号的进程。为了杀死一个进程,你必须得到进程的ID,然后用kill命令来杀死它。
    系统杀死进程的调用是kill,是在内核里的sys_kill()命令里的调用。
    让我们看看LIDS的保护代码
    在/usr/src/linux/kernel/signal.c里
    asmlinkage int
    sys_kill(int pid, int sig)
    {
       struct siginfo info;
       #ifdef CONFIG_LIDS_INIT_CHILDREN_LOCK pid_t this_pid;
       int i;
       #ifdef CONFIG_LIDS_ALLOW_KILL_INIT_CHILDREN
       if (!(current->flags & PF_KILLINITC))
       #endif
       if (lids_load && lids_local_load && LIDS_FISSET(lids_flags,LIDS_FLAGS_LOCK_INIT_CHILDREN)) {
          this_pid = pid>0?pid:-pid;
          for(i=0;i
        if( this_pid == lids_protected_pid[i]) {
           lids_security_alert("Try to kill pid=%d,sig=%dn",pid,sig);
       return -EPERM;
                 }
          }

热门栏目