请给我一个提示,告诉我一个最简单、最轻的解决方案来隔离一个linux shell脚本(通常是ubuntu,如果它有smth special的话)
我说的隔离是什么意思:
一。文件系统-最重要的-我希望它不能访问工作区之外的任何文件夹(读取),除非我将以某种方式手动配置这些文件夹
2。实际上,其他类型的隔离并不重要
“软”隔离是可以的,我的意思是,如果尝试访问(读取)拒绝的路径,脚本可能会失败/中止,但是“硬”隔离对于这样的尝试“找不到”看起来是一个更干净的解决方案
我不需要任何进程隔离,脚本可以在其中使用sudo/fakeroot/etc,但这不应该影响隔离。
另外,我计划在一个工作区内使用不同的隔离:
例如,我有文件夹:

a/
b/
include/
target/

我想让它只访问“a”(rw)、“include”(r)和“target”(rw+sudo)
make a只允许它访问“b”(rw)、“include”(r)和“target”(rw+sudo)
target将同时从A和B获得结果,允许B覆盖A的任何结果-如果没有隔离,则相同
我所说的隔离的目标是防止从A读取B,即使知道A存在,反之亦然
谢谢!

最佳答案

两个不同的用户和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
对于许多顺序独立的构建(如您的案例),一种解决方案是按照您已经建议的那样执行;自动更改文件权限,以便每个构建都只能访问它应该访问的文件和文件夹。

关于linux - 进行隔离的构建或任何shell命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17591785/

10-11 15:32