如何在Linux上以高度受限的权限启动进程?
我想(从代码)启动一个具有高度限制权限的进程如何在Linux上以高度受限的权限启动进程?,linux,security,process,Linux,Security,Process,我想(从代码)启动一个具有高度限制权限的进程 可以保存文件,但只能保存在自己的文件夹中,并且限制为配额 可以在配额内使用内存 CPU时间(包括它启动的任何子进程)限制为配额 除了它自己的进程和通过stdin/out与我的控制器程序的接口之外,不能与任何其他进程通信 无法与任何设备交互 在网络上看不到任何其他内容 (我正在构建一个网格式系统。启动的代码可能是恶意的。) 这是我到目前为止得到的。。。 -预先创建一些用户grid00-grid99。按配置为每个磁盘/内存/CPU分配配额 要启动进程
- 可以保存文件,但只能保存在自己的文件夹中,并且限制为配额
- 可以在配额内使用内存
- CPU时间(包括它启动的任何子进程)限制为配额
- 除了它自己的进程和通过stdin/out与我的控制器程序的接口之外,不能与任何其他进程通信
- 无法与任何设备交互
- 在网络上看不到任何其他内容
- 选择一个未使用的gridxx用户
- 在用户的主文件夹中创建一个文件夹
- 该文件夹中的硬链接/bin、/usr等
- 在该文件夹中创建新的/home/gridxx和/tmp文件夹
- 在程序文件中复制
- 切换到gridxx用户
- chroot到新文件夹
- 启动新流程
非常感谢。听起来您正在寻找类似功能的东西。(这当然是针对FreeBSD的,但该页面有指向Linux类似技术的链接。)标准资源使用限制(通过
ulimit
)可以处理前三个,而SELinux可以处理其他三个。只需为应用程序创建一个新域,分配适当的权限,然后离开(但不是它)。您应该能够通过ulimit、chroot、磁盘配额和防火墙来实现这一点。限制所有形式的“谈话”(IPC)是很困难的。最后,您可能希望使用一组虚拟机。您可能会得到关于serverfault.com的更多答案。我考虑过这一点,但我会从代码中完成所有这些。