+
24
-

回答

在 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 限制设备,间接防止删除或重启。

网友回复

我知道答案,我要回答