為什麼我無法在 %ProgramFiles% 上設定 NTFS 權限?

為什麼我無法在 %ProgramFiles% 上設定 NTFS 權限?

在 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 元件取得這些權限的方式大致相同)。

相關內容