我如何将 linux 系统调用映射到功能
Posted
技术标签:
【中文标题】我如何将 linux 系统调用映射到功能【英文标题】:How do i map linux system calls to capabilities 【发布时间】:2019-03-02 00:12:58 【问题描述】:我想在非特权模式下运行容器。这是为了使其更安全并更好地控制。我从我的容器中记录了一些系统调用。 以下是系统调用:
recvfrom
mmap
写
阅读
fstat
recvmsg
保护
munmap
插座
fcntl
io_submit
io_getevents
选择
epoll_ctl
寻找
发送消息
ioctl
统计
发送到
sched_yield
系统事件
rt_sigaction
如何将上述系统调用映射到功能? 我想在运行容器时添加这些功能
【问题讨论】:
就这么做吧。 docs.docker.com/engine/reference/run/… 我不认为你可以,Linux 功能在单个系统调用的基础上不起作用,它可以增加对非特权事物的更多访问权限,但这些系统调用已经可以通过非特权进程。 我怎样才能知道我的容器需要哪些功能才能在非特权模式下运行? 您可以使用能力跟踪,如能力,请参阅***.com/a/47991611/3147123 【参考方案1】:除了我无法识别的sysdigevent
,其余的看起来都像是基本的系统调用。除非您在特权套接字、原始块设备或任何其他固有特权上进行操作,否则您不需要任何功能。
【讨论】:
以上是关于我如何将 linux 系统调用映射到功能的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核 内存管理内存管理系统调用 ① ( mmap 创建内存映射 | munmap 删除内存映射 | mprotect 设置虚拟内存区域访问权限 )
32位系统调用表入口点如何映射到x86_64中的SYSCALL_DEFINE
Linux内存从0到1学习笔记(七,用户空间虚拟内存之三 - 内存映射)