如何在具有高度限制权限的Linux上启动进程?

时间:2010-07-19 23:04:36

标签: linux security process

我想(从代码中)启动具有高度限制权限的流程。

  • 可以保存文件,但只能保存在自己的文件夹中并限制为配额。
  • 可以在配额范围内使用内存。
  • CPU时间(包括它启动的任何子进程)仅限于配额。
  • 除了它自己以及通过stdin / out到我的控制器程序的接口之外,不能与任何其他进程通信。
  • 无法与任何设备互动。
  • 在网络上看不到任何其他内容。

(我正在建立一个网格式系统。启动的代码可能是敌对的。)

这是我到目前为止所得到的......   - 提前创建一些用户grid00-grid99。按配置为每个磁盘/内存/ CPU配额。

启动流程...

  • 选择一个未使用的gridxx用户。
  • 在用户的主文件夹中创建一个文件夹。
  • 该文件夹中的硬链接/ bin,/ usr等。
  • 在该文件夹中创建一个新的/ home / gridxx和/ tmp文件夹。
  • 复制程序文件。
  • 切换到gridxx用户。
  • chroot到新文件夹。
  • 启动新流程。

我错过了什么吗?

非常感谢。

3 个答案:

答案 0 :(得分:4)

标准资源使用限制(通过ulimit)可以处理前三个,SELinux可以处理其他三个。只需为应用程序创建一个新域,分配适当的权限,然后离开(但不是)。

答案 1 :(得分:3)

听起来你正在寻找像FreeBSD jail这样的功能。 (当然,这适用于FreeBSD,但该页面链接到Linux的类似技术。)

答案 2 :(得分:1)

您应该能够通过ulimit,chroot,磁盘配额和防火墙来实现这一目标。限制所有形式的“谈话”(IPC)很难。最后,您可能想要使用一组虚拟机。