需要对某个特定的进程限制系统调用,有些问题想请教。
时间:2006-03-29
来源:互联网
我需要对某个特定的进程限制某些系统调用。
虽然strace可以实现这点,但是考虑到strace可能会影响性能,想通过修改内核实现。
我想把那些受到限制的进程都用某个特定的用户(uid)运行,内核系统调用的入口进行判断,如果是该uid则做相应的限制。
具体想更改的内核代码如下:
ENTRY(system_call)
pushl %eax # save orig_eax
SAVE_ALL
GET_THREAD_INFO(%ebp)
# system call tracing in operation / emulation
/* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */
testw $(_TIF_SYSCALL_EMU|_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT),TI_flags(%ebp)
jnz syscall_trace_entry
cmpl $(nr_syscalls), %eax
jae syscall_badsys
/*
我想在此处增加一个判断,首先获得该进程的uid号,如果不是特定的uid则转入syscall_call继续运行。否则,判断是否为合法的系统调用,如果不合法则转入syscall_badsys,合法的系统调用则继续进入syscall_call。
*/
syscall_call:
call *sys_call_table(,%eax,4)
movl %eax,EAX(%esp) # store the return value
请问我添加代码的地方和思路是否正确?
如何才能得到该进程的uid号?
虽然strace可以实现这点,但是考虑到strace可能会影响性能,想通过修改内核实现。
我想把那些受到限制的进程都用某个特定的用户(uid)运行,内核系统调用的入口进行判断,如果是该uid则做相应的限制。
具体想更改的内核代码如下:
ENTRY(system_call)
pushl %eax # save orig_eax
SAVE_ALL
GET_THREAD_INFO(%ebp)
# system call tracing in operation / emulation
/* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */
testw $(_TIF_SYSCALL_EMU|_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT),TI_flags(%ebp)
jnz syscall_trace_entry
cmpl $(nr_syscalls), %eax
jae syscall_badsys
/*
我想在此处增加一个判断,首先获得该进程的uid号,如果不是特定的uid则转入syscall_call继续运行。否则,判断是否为合法的系统调用,如果不合法则转入syscall_badsys,合法的系统调用则继续进入syscall_call。
*/
syscall_call:
call *sys_call_table(,%eax,4)
movl %eax,EAX(%esp) # store the return value
请问我添加代码的地方和思路是否正确?
如何才能得到该进程的uid号?
作者: flyingdog 发布时间: 2006-03-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28