使用 Windows Server 2019 上的管理员用户帐户,我尝试更改 、 和 上的用户帐户的 NTFS 权限%ProgramFiles%
,%ProgramFiles(x86)%
但由于文件夹归 所有,%WinDir%
因此出现错误。access denied
TrustedInstaller
- 我已经尝试了基本和高级权限对话框,如果我使用高级对话框来更改权限
C:
,则在将更改传播到子项时,这三个文件夹会失败 - 我认为可以更改文件夹的所有权,但我也认为这样做不是一个好主意
为什么会发生这种情况?有没有办法避免?
- 我想要实现的是将用户帐户沙盒化,拒绝所有应用程序的执行权限,除了两个用于单一自动化目的的应用程序 - 其中一个位于的子文件夹中
%ProgramFiles%
,另一个位于单独的驱动器上。
答案1
这是因为文件夹的当前的ACL 不授予管理员帐户设置 ACL 的权限。如果您不是所有者,则您无法更改 ACL,除非明确授予此类访问权限 - 管理员也是如此。
(授予完全控制权的访问条目标记(IO)
为“仅继承”;它仅对子对象有效,而不对原始文件夹有效。)
绕过该问题的一种方法是激活 SeRestorePrivilege(例如使用 PSPrivilege cmdlet)——这是 Explorer 用来设置任意所有者的方法——但它不起作用,icacls
因为它在进行更改之前会再次手动禁用特权。不过它可能仍然适用于其他工具(可能是 PowerShell 自己的Set-Acl
)。
另一种方法是使用类似的工具gsudo --ti
,让您以 TrustedInstaller 权限运行任意命令(与 Windows 组件获取这些权限的方式非常相似)。