在 Linux 中,可通过以下几种机制限制进程执行危险系统调用(如 reboot、unlink 删除文件等):
1. Seccomp(推荐)
Seccomp 能白名单式限制进程可调用的系统调用。例如,用 seccomp-bpf 或工具如 systemd、Docker、Firejail 设置规则,禁止 reboot、kill、unlink 等 syscall。开发者也可在程序中用 libseccomp 编写策略。
2. Capabilities(能力)
Linux 将 root 权限拆分为细粒度“能力”。通过 capsh 或 systemd 去掉进程的危险能力,如:
CAP_SYS_BOOT(禁止 reboot)
CAP_DAC_OVERRIDE(禁止绕过文件权限删除)命令示例:
capsh --drop=cap_sys_boot,cap_dac_override -- -c "your_command"
3. 沙箱工具(简单易用)
Firejail:用配置文件禁用危险 syscall 或能力,例如 firejail --noprofile --seccomp your_app。
Bubblewrap:配合 --ro-bind 只读挂载、--dev 限制设备,间接防止删除或重启。
网友回复
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?
python如何实现基于http隧道加密的正向代理服务?
有没有有专门针对 UI 界面截图进行智能标记(Set-of-Mark, SoM) 的开源库和工具?
如何用python实现Set-of-Mark (SoM) 技术?
python如何截取windows指定应用的窗口截图,不用管窗口是不是在最前面?
linux能不能给rm删除命令增加回收站功能,可恢复被删文件?
bfwsoa如何在命令行中执行控制器动作器方法?
RAG(检索增强生成)和 KG(知识图谱)有啥不同?
KVM硬件是啥?


