Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 执行独立构建或任何shell命令_Linux_Shell_Isolatedstorage_Isolation - Fatal编程技术网

Linux 执行独立构建或任何shell命令

Linux 执行独立构建或任何shell命令,linux,shell,isolatedstorage,isolation,Linux,Shell,Isolatedstorage,Isolation,请给我一个最简单、最轻巧的解决方案来隔离linux shell脚本(通常是ubuntu,以防它有smth特殊功能) 关于隔离,我的意思是: 1.文件系统-最重要的-我希望它不能访问工作区之外的任何文件夹(读取),除了我将以某种方式手动配置的文件夹 2.实际上,其他类型的隔离并不重要 “软”隔离是可以的,我的意思是,如果试图访问(读取)被拒绝的路径,脚本可能会失败/中止,但对于这样的尝试,获得“未找到”的“硬”隔离看起来是一个更干净的解决方案 我不需要任何进程隔离,脚本可以在其中使用sudo/fa

请给我一个最简单、最轻巧的解决方案来隔离linux shell脚本(通常是ubuntu,以防它有smth特殊功能)

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

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

我不需要任何进程隔离,脚本可以在其中使用sudo/fakeroot/等,但这不应该影响隔离

此外,我计划在一个工作区内使用不同的隔离:

例如,我有文件夹:

a/
b/
include/
target/
我想
制作一个
只允许它访问“a”(rw)、“include”(r)和“target”(rw+sudo)
make b
仅允许其访问“b”(rw)、“include”(r)和“target”(rw+sudo)

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

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


谢谢

两个不同的用户,SSH是解决问题的简单方法。其中一个关键的好处是,这将在一个新的shell中创建一个“干净”的环境

ssh <user_a>@localhost '<path_to_build_script_a>'
ssh <user_b>@localhost '<path_to_build_script_b>'
ssh@localhost''
ssh@localhost“”
用户a和b都必须是拥有公用目录的组的成员

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

编辑:2013-07-29


对于像您这样的大量顺序隔离构建,一个解决方案是按照您已经建议的方式执行;自动更改文件权限,使每个版本只能访问它应该访问的文件和文件夹。

但是我仍然需要一个“手动”脚本,在每次调用
ssh
之前进行权限切换,对吗?我看不需要这样做。目录a应该只能由用户a读/写,反之亦然。谢谢,但在a和B的情况下,您的解决方案可能是可接受的,但我有大约60个动态管理的脚本,每个脚本我都想隔离,可能我需要更多的简化。我同意我的建议不能很好地扩展。脚本是否可以顺序运行,或者是否需要并行运行?我们只需要顺序运行,或者至少不冲突的并行运行—这是可控的