我以本地用户身份运行沙盒应用程序。 我现在想要拒绝这个用户的几乎所有的文件系统权限来保护系统,除了几个工作文件夹和一些系统DLL(我将在下面调用这组文件和目录X )。
沙盒用户不在任何组中。 所以它不应该有任何权限,对不对? 错误,因为所有“Authenticated Users”都是本地“Users”组的成员,并且该组几乎可以访问所有内容。
我想recursion地添加到所有文件和目录的拒绝ACL条目,并从X手动删除它们。 但是这似乎过分了。
我也想过从“Users”组中删除“Authenticated Users”。 但是我害怕意想不到的副作用。 其他事情可能依赖于此。 它是否正确?
有没有更好的方法来做到这一点? 你将如何限制(非常)不可信任的帐户的文件系统权限?
请记住一些事情:
禁用该用户的旁路遍历检查 。
显式允许优先于inheritance的拒绝。
我不会build议更改Authenticated Users或Users安全组。
除了“遍历文件夹”之外,在驱动器的根目录处向该用户拒绝该用户,然后授予显式允许的位置,以便他们能够读取。 一般来说,从用户中删除Authenticated Users不是一个好主意。
我不认为这是解决这个问题的正确方法。
你真正应该做的是为你的机密数据设置ACL(例如,如果用户在这台计算机上有家庭文件夹,则应该更改其ACL,以便只有该用户和pipe理员才能被授予访问权限)。
最后,我去了“过度”的解决scheme:
icacls c:\* /T /C /deny MyComputer\SandboxUser:(OI)(CI)F
这将拒绝所有文件和目录的条目。 然后我使用Process Monitor来查看手动更改的权限以让应用程序运行。
请记住,即使是非常不可信的用户,您希望能够login到您的系统,也需要对某些系统文件的读取权限。 你在这里担心什么? 如果您担心用户能够删除系统文件等,则标准用户帐户可能会提供您所需的安全性。 如果你真的担心,让他们成为嘉宾的一员。
如果你确实真的担心,那么也许考虑在系统中应用一个更严格的安全模板(或者如果你正在使用Windows 7/2008或更高版本,请使用安全configuration向导),但是要注意,这可能会导致其他问题用户。