在 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 限制设备,间接防止删除或重启。
网友回复
- threejs如何做个三维搭积木的游戏?
- three如何实现标记多个起始路过地点位置后选择旅行工具(飞机汽车高铁等),最后三维模拟行驶动画导出mp4?
- ai实时驱动的3d数字人可视频聊天的开源技术有吗
- swoole+phpfpm如何实现不同域名指向不同目录的多租户模式?
- 如何用go替换nginx实现请求phpfpm解析运行php脚本?
- 有没有浏览器离线运行进行各种文档、图片、视频格式转换的开源工具?
- 如何使用go语言搭建一个web防火墙?
- linux如何检测特定网络协议比如http协议中报文是否包含特点关键词并阻止返回给客户?
- 如果在nginx外过滤包含某些关键词的网页并阻止打开?
- 程序员怎么做副业赚钱?



 
				 
			 
			 
				 
			