【问题标题】:Make isolated build or any shell command进行隔离构建或任何 shell 命令
【发布时间】:2013-07-09 15:08:31
【问题描述】:

请给我一个提示,让我知道隔离 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)和“target”(rw+sudo)

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

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

谢谢!

【问题讨论】:

    标签: linux shell isolatedstorage isolation


    【解决方案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

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

    【讨论】:

    • 但是我仍然需要一个“手动”脚本来在每次ssh 调用之前进行权限切换,对吗?
    • 我认为没有必要。目录 a 只能被用户 a 读/写,反之亦然。
    • 谢谢,但是在 A 和 B 的情况下,您的解决方案可能是可以接受的,但是我有大约 60 个动态管理的脚本,每个我都想隔离,可能我需要更简单一些
    • 我同意我的建议不能很好地扩展。脚本可以顺序运行还是需要并行运行?
    • 我们只需要顺序运行,或者至少是非冲突并行——这是可控的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多