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

标签 linux security process

我想(通过代码)启动一个具有高度受限权限的进程。

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

(我正在构建一个类似网格的系统。启动的代码可能是有敌意的。)

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

启动进程...

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

我错过了什么吗?

非常感谢。

最佳答案

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

关于linux - 如何在具有高度受限权限的 Linux 上启动进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3285805/

相关文章:

linux - 为什么我不能使用/dev/mem修改BBB的一些寄存器?

linux - Linux 中的安装命令(useradd、ifconfig)

javascript - 防止站点范围内的 XSS 攻击

Java 1.7.0u45 将连接重定向到本地主机

c - 在 main 中等待 execvp

ruby - Jenkins 工作缓慢。 I/O 相关吗?

linux - python threading.ident 是否与 Linux 进程 ID 相同?

http - http_x_forwarded_for 检查 IP 是否安全

c - 为什么 MPI_SEND 在我的 for 循环中不起作用?如果明确说明,它可以正常工作

scala - 如何使用ProcessBuilder返回二进制数据?