最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
LIDS精通与进阶(中)
时间:2008-01-12 编辑:简简单单 来源:一聚教程网
四、保护重要进程
进程是操作系统的动态入口。内核里有两个特殊进程,进程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;
}
}
-
上一个: LIDS精通与进阶(上)
-
下一个: LIDS精通与进阶(下)
相关文章
- SolidWorks如何制作棘轮棘爪运动仿真 07-09
- solidworks如何画丝杠模型 06-28
- Mathematica动态控件Slider教程 06-12
- 如何解决SolidWorks找不到零件模型图 05-30
- solidworks弹簧怎么画 solidworks画弹簧的方法 05-23
- NVIDIA发布382.33WHQL驱动来修复漏洞 05-23