分享方式:


icacls

顯示或修改指定檔案上的判別存取控制清單 (DACL),及套用預存的 DACL 到指定目錄中的檔案。

注意

此命令會取代已遭到淘汰的 cacls 命令

語法

icacls <filename> [/grant[:r] <sid>:<perm>[...]] [/deny <sid>:<perm>[...]] [/remove[:g|:d]] <sid>[...]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<policy>[...]]
icacls <directory> [/substitute <sidold> <sidnew> [...]] [/restore <aclfile> [/c] [/l] [/q]]

參數

參數 描述
<filename> 指定要顯示或修改 DACL 的檔案。
<目錄> 指定要顯示或修改 DACL 的目錄。
/t 在目前目錄及其子目錄中的所有指定檔案上執行作業。
/c 即使發生任何檔案錯誤,也繼續進行作業。 系統仍會顯示錯誤訊息。
/l 在符號連結 (而非其目的地) 上執行作業。
/q 隱藏成功訊息。
[/save <ACLfile> [/t] [/c] [/l] [/q]] 將所有相符檔案的 DACL 儲存至存取控制清單 (ACL) 檔案,以便於後續搭配 /restore 使用。
[/setowner <username> [/t] [/c] [/l] [/q]] 將所有相符檔案的擁有者變更為指定使用者。
[/findsid <sid> [/t] [/c] [/l] [/q]] 尋找包含明確提及指定安全性識別碼 (SID) 之 DACL 的所有相符檔案。
[/verify [/t] [/c] [/l] [/q]] 尋找其 ACL 為非標準或長度與存取控制項目 (ACE) 計數不一致的所有檔案。
[/reset [/t] [/c] [/l] [/q]] 使用適用於所有相符檔案之預設繼承的 ACL 來取代 ACL。
[/grant[:r] <sid>:<perm>[...]] 授與指定的使用者存取權限。 權限會取代先前所授與的明確權限。

未新增 :r,這表示權限會新增至任何先前授與的明確權限。

[/deny <sid>:<perm>[...]] 明確地拒絕指定的使用者存取權限。 已針對所述的權限新增明確拒絕 ACE,而任何明確授與中的相同權限都已遭到移除。
[/remove[:g | :d]] <sid>[...] [/t] [/c] [/l] [/q] 從 DACL 移除指定 SID 的所有相符項目。 這個命令也可使用:
  • :g - 移除指定 SID 之授與權限的所有相符項目。
  • :d - 移除指定 SID 權限遭拒的所有相符項目。
[/setintegritylevel [(CI)(OI)] <Level>:<Policy>[...]] 將完整性 ACE 明確新增至所有相符檔案。 層級可指定為:
  • l - 低
  • m- 中
  • h - 高
完整性 ACE 的繼承選項可能位於層級之前,且僅會套用至目錄。
[/substitute <sidold><sidnew> [...]] 使用新的 SID (sidnew) 取代現有 SID (sidold)。 需要搭配 <directory> 參數使用。
/restore <ACLfile> [/c] [/l] [/q] 將儲存的 DACL 從 <ACLfile> 套用至指定目錄的檔案。 需要搭配 <directory> 參數使用。
/inheritancelevel: [e | d | r] 設定繼承層級,該層級可以是:
  • e - 啟用繼承
  • d - 停用繼承並複製 ACE
  • r - 停用繼承且僅移除繼承的 ACE

備註

  • SID 可以是數字或易記的名稱格式。 如果使用數字格式,請在 SID 的開頭前置萬用字元 *

  • 這個命令會將 ACE 項目的標準順序保留為:

    • 明確拒絕

    • 明確授與

    • 繼承拒絕

    • 繼承授與

  • <perm> 選項為權限遮罩,可透過下列任一形式指定:

    • 一系列的簡單權限 (基本權限):

      • F - 完整存取

      • M- 修改存取

      • RX - 讀取和執行存取

      • R - 唯讀存取

      • W - 唯寫存取

    • 在括弧中的特定權限逗號分隔清單 (進階權限):

      • D - 刪除

      • RC - 讀取控制 (讀取權限)

      • WDAC - 寫入 DAC (變更權限)

      • WO - 寫入擁有者 (取得擁有權)

      • S - 同步

      • AS - 存取系統安全性

      • MA - 允許的最大值

      • GR - 一般讀取

      • GW - 一般寫入

      • GE - 一般執行

      • GA - 一般全部

      • RD - 讀取資料/清單目錄

      • WD - 寫入資料/新增檔案

      • AD - 附加資料/新增子目錄

      • REA - 讀取擴充屬性

      • WEA - 寫入擴充屬性

      • X - 執行/周遊

      • DC - 刪除子系

      • RA - 讀取屬性

      • WA - 寫入屬性

    • 繼承權限可位於 <perm> 形式之前:

      • (I) - 繼承。 ACE 繼承自父系容器。

      • (OI) - 物件繼承。 此容器中的物件將繼承此 ACE。 僅會套用至目錄。

      • (CI) - 容器繼承。 此父系容器中的容器將繼承此 ACE。 僅會套用至目錄。

      • (IO) - 僅繼承。 ACE 繼承自父系容器,但不會套用至物件本身。 僅會套用至目錄。

      • (NP) - 請勿傳播繼承。 容器和物件會自父系容器繼承 ACE,但 ACE 不會傳播至巢狀容器。 僅會套用至目錄。

範例

若要將 C:\Windows 目錄及其子目錄中所有檔案的 DACL 儲存至 ACLFile 檔案,請輸入:

icacls c:\windows\* /save aclfile /t

若要還原存在於 C:\Windows 目錄及其子目錄中每個檔案的 DACL,請輸入:

icacls c:\windows\ /restore aclfile

若要為名為 Test1 的檔案授與使用者 User1 刪除和寫入 DAC 權限,請輸入:

icacls test1 /grant User1:(d,wdac)

若要為 SID S-1-1-0 定義的使用者授與名為 Test2 之檔案的刪除和寫入 DAC 權限,請輸入:

icacls test2 /grant *S-1-1-0:(d,wdac)