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 的所有相符項目。 這個命令也可使用:
|
[/setintegritylevel [(CI)(OI)] <Level>:<Policy>[...]] | 將完整性 ACE 明確新增至所有相符檔案。 層級可指定為:
|
[/substitute <sidold><sidnew> [...]] | 使用新的 SID (sidnew) 取代現有 SID (sidold)。 需要搭配 <directory> 參數使用。 |
/restore <ACLfile> [/c] [/l] [/q] | 將儲存的 DACL 從 <ACLfile> 套用至指定目錄的檔案。 需要搭配 <directory> 參數使用。 |
/inheritancelevel: [e | d | r] | 設定繼承層級,該層級可以是:
|
備註
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)