0

请给我一个提示,让我了解隔离 linux shell 脚本的最简单和最轻量级的解决方案(通常是 ubuntu,以防它有特殊之处)

我对隔离的意思是: 1. 文件系统 - 最重要的 - 我希望它不能访问工作区之外的任何文件夹(读取),除了我将以某种方式手动配置的文件夹 2. 实际上,其他类型的隔离并不重要

“软”隔离是可以的,我的意思是如果尝试访问(读取)被拒绝的路径,脚本可能会失败/中止,但是“硬”隔离以获得“未找到”这样的尝试看起来像一个更干净的解决方案

我不需要任何进程隔离,脚本可以使用 sudo/fakeroot/etc。在里面,但这不应该影响隔离。

另外,我计划在一个工作空间内使用不同的隔离:

例如,我有文件夹:

a/
b/
include/
target/

我想让make a它只访问“a”(rw)、“include”(r)和“target”(rw+sudo) make b ,只允许它访问“b”(rw)、“include”(r)和“目标" (rw+sudo)

并且目标将从 A 和 B 获得两个结果,允许 B 覆盖 A 的任何结果 - 如果没有隔离,则相同

我所说的隔离目标是防止B从A读取,即使知道有A,反之亦然

谢谢!

4

1 回答 1

1

两个不同的用户和 SSH 是解决问题的简单方法。一个主要的好处是这将在一个新的 shell 中启动一个“干净”的环境。

ssh <user_a>@localhost '<path_to_build_script_a>'
ssh <user_b>@localhost '<path_to_build_script_b>'

用户 a 和 b 都必须是拥有公共目录的组的成员。

请注意,决定用户是否可以在该目录中创建新文件的是目录写入权限。

编辑:2013-07-29

对于像您这样的许多顺序隔离构建,一种解决方案是按照您已经建议的方式进行操作;自动更改文件权限,以便每个构建只能访问它应该访问的文件和文件夹。

于 2013-07-18T20:07:29.697 回答