Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Linux上以高度受限的权限启动进程?_Linux_Security_Process - Fatal编程技术网

如何在Linux上以高度受限的权限启动进程?

如何在Linux上以高度受限的权限启动进程?,linux,security,process,Linux,Security,Process,我想(从代码)启动一个具有高度限制权限的进程 可以保存文件,但只能保存在自己的文件夹中,并且限制为配额 可以在配额内使用内存 CPU时间(包括它启动的任何子进程)限制为配额 除了它自己的进程和通过stdin/out与我的控制器程序的接口之外,不能与任何其他进程通信 无法与任何设备交互 在网络上看不到任何其他内容 (我正在构建一个网格式系统。启动的代码可能是恶意的。) 这是我到目前为止得到的。。。 -预先创建一些用户grid00-grid99。按配置为每个磁盘/内存/CPU分配配额 要启动进程

我想(从代码)启动一个具有高度限制权限的进程

  • 可以保存文件,但只能保存在自己的文件夹中,并且限制为配额
  • 可以在配额内使用内存
  • CPU时间(包括它启动的任何子进程)限制为配额
  • 除了它自己的进程和通过stdin/out与我的控制器程序的接口之外,不能与任何其他进程通信
  • 无法与任何设备交互
  • 在网络上看不到任何其他内容
(我正在构建一个网格式系统。启动的代码可能是恶意的。)

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

要启动进程

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


非常感谢。

听起来您正在寻找类似功能的东西。(这当然是针对FreeBSD的,但该页面有指向Linux类似技术的链接。)

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

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

您可能会得到关于serverfault.com的更多答案。我考虑过这一点,但我会从代码中完成所有这些。