【问题标题】:How to create user with access only to one given folder?如何创建只能访问一个给定文件夹的用户?
【发布时间】:2012-07-19 14:26:30
【问题描述】:

我需要制作“沙盒”来运行脚本和应用程序(PHP、Perl、exe 文件、Ruby 等)。但是解释器需要可以运行,并且只能访问一个文件夹以进行更改。此外,允许在硬盘驱动器上使用配额启动应用程序也很棒。在这种情况下我需要使用什么?

我需要 C# 中的解决方案

【问题讨论】:

  • 开箱即用的 Windows 安全和配额?
  • 有人编辑了我的标签...我需要 C# 中的解决方案。我需要使用什么?

标签: windows policy


【解决方案1】:

您可以对所有文件操作设置文件系统过滤器并以这种方式控制它们,但如此宽的过滤器会显着减慢操作,尤其是在用户模式下(通过回调)进行检查时。您可以测试我们的CallbackFilter 产品,它可以让您在 C# 中执行上述操作,但要为速度慢做好准备。

【讨论】:

    【解决方案2】:

    您可能需要创建某种虚拟驱动器。 看这个 creating virtual hard Drive 和一个 csharp 库来玩虚拟驱动器 http://dokan-dev.net/en/ 希望对您有所帮助

    【讨论】:

    • 这对于一个应用程序来说会很棒,但我会一次启动大约 400 个应用程序,而虚拟驱动器不是很好的解决方案。我需要 FAST 解决方案。可能是用于 C# 应用程序的带有 API 的 minifilter 内核驱动程序?这将是理想的,因为我不需要创建用户。我将根据进程 ID 标识应用我自己的策略。
    【解决方案3】:

    您可以设置 windows 安全性以允许这样做,选择您希望用户访问的文件夹并设置其权限(右键单击、属性、安全性)。这种方法的问题是,如果您不希望用户使用它们(即每个人和用户访问),您需要找到所有其他文件夹并撤销对它们的访问权限。

    Alternativly 查看WinJail 包,它可以满足您的需要。 (Windows 的 CHROOT/JAIL 实施)。

    【讨论】:

    • 所以...是吗?我需要迭代所有驱动器上的所有文件夹、子文件夹和文件以拒绝用户访问。拒绝访问除某些 C:\apptemps\ 文件夹之外的所有根文件夹还不够?
    • 不要担心,因为它是 ACL,如果您允许用户访问子目录,他们就可以访问该子目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多