概念
顯示或修改任意訪問控制列表 (ACL) 檔案。
語法
cacls FileName [/t] [/e] [/c] [/g User:permission] [/r User [...]] [/p User:permission [...]] [/d User [...]]
參數
FileName
必需。顯示指定檔案的 ACL。
/t
更改當前目錄和所有子目錄中指定檔案的 ACL。
/e
編輯 ACL,而不是替換它。
/c
忽略錯誤,繼續修改 ACL。
/g User:permission
將訪問許可權授予指定用戶。下表列出了 permission 的有效值。 值 說明
n 無
r 閱讀順序
w 寫入
c 更改(寫入)
F 完全控制
/r user
取消指定用戶的訪問許可權。
/p User:permission
替代指定用戶的訪問許可權。下表列出了 permission 的有效值。 值 說明
n 無
r 閱讀順序
w 寫入
c 更改(寫入)
F 完全控制
/d user
拒絕指定用戶的訪問。
/?
在命令提示符顯示幫助。
注釋
使用下表解釋輸出結果。 輸出 ACE 的適用於
OI 此資料夾和檔案
CI 此資料夾和子資料夾
IO ACE 不適用於當前檔案/目錄。
沒有輸出訊息 僅此資料夾
(IO)(CI) 此資料夾、子資料夾和檔案
(OI)(CI)(IO) 僅子資料夾和檔案
(CI)(IO) 僅子資料夾
(OI)(IO) 僅檔案
使用通配符(? 和 *)可以指定多個檔案。
可以指定多個用戶。
例如:cacls d:\game /p everyone:n
cacls c:\windows\system32\cmd.exe /e /d guests //禁止guests組用戶使用cmd.exe
cacls c:\windows\system32\cmd.exe /e /r users //解禁。
允許guests組用戶使用cmd.exe /d user /e /r user 拒絕指定用戶的訪問。
編輯 ACL,而不是替換它。取消指定用戶的訪問許可權。
cacls c:\test /p administrator :N 拒絕 administrator 用戶(超及管理用戶)訪問C糟下的test資料夾
cacls c:\test /p administrator:F 恢復 administrator用戶對其的訪問
值得注意的是,在使用cacls命令對某一盤符設定了對administrator拒絕訪問後,如
cacls c:\ /p administrator:N
再使用 cacls c: /p administrator:F 命令恢復許可權已經不可行了,這時可以用後面的一個方法進行解決,恢復其操作權.
ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
將匹配名稱的檔案和資料夾的 DACL 存儲到 aclfile 中以便將來與 /restore 一起使用。請注意,未保存 SACL、所有者或完整性標籤。
ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile
[/C] [/L] [/Q] 將存儲的 DACL 套用於目錄中的檔案。
ICACLS name /setowner user [/T] [/C] [/L] [/Q] 更改所有匹配名稱的所有者。該選項不會強制更改所有身份; 使用 takeown.exe 實用程式可實現該目的。
ICACLS name /findsid Sid [/T] [/C] [/L] [/Q] 查找包含顯式提及 SID 的 ACL 的所有匹配名稱。 ICACLS name /verify [/T] [/C] [/L] [/Q] 查找其 ACL 不規範或長度與 ACE 計數不一致的所有檔案。
ICACLS name /reset [/T] [/C] [/L] [/Q] 為所有匹配檔案使用默認繼承的 ACL 替換 ACL。
ICACLS name [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L]
[/setintegritylevel Level:policy[...]]
/grant[:r] Sid:perm 授予指定的用戶訪問許可權。如果使用 :r,
這些許可權將替換以前授予的所有顯式許可權。
如果不使用 :r,這些許可權將添加到以前授予的所有顯式許可權。
/deny Sid:perm 顯式拒絕指定的用戶訪問許可權。
將為列出的許可權添加顯式拒絕 ACE,
並刪除所有顯式授予的許可權中的相同許可權。
/remove[:[g|d]] Sid 刪除 ACL 中所有出現的 SID。使用
:g,將刪除授予該 SID 的所有許可權。使用
:d,將刪除拒絕該 SID 的所有許可權。
/setintegritylevel [(CI)(OI)] 級別將完整性 ACE 顯式添加到所有匹配檔案。
要指定的級別為以下級別之一:
L[ow]
M[edium]
H[igh]
完整性 ACE 的繼承選項可以優先於級別,但只套用於目錄。
/inheritance:e|d|r
e - 啟用繼承
d - 禁用繼承並複製 ACE
r - 刪除所有繼承的 ACE
注意:
Sid 可以採用數字格式或友好的名稱格式。如果給定數字格式,那么請在 SID 的開頭添加一個 *。
/T 指示在以該名稱指定的目錄下的所有匹配檔案/目錄上執行此操作。
/C 指示此操作將在所有檔案錯誤上繼續進行。仍將顯示錯誤訊息。
/L 指示此操作在符號連結本身而不是其目標上執行。
/Q 指示 icacls 應該禁止顯示成功訊息。
ICACLS 保留 ACE 項的規範順序:
顯式拒絕
顯式授予
繼承的拒絕
繼承的授予
perm 是許可權掩碼,可以兩種格式之一指定:
簡單許可權序列: N - 無訪問許可權 F - 完全訪問許可權 M - 修改許可權 RX - 讀取和執行許可權 R - 唯讀許可權 W - 只寫許可權 D - 刪除許可權
在括弧中以逗號分隔的特定許可權列表:
DE - 刪除 RC - 讀取控制 WDAC - 寫入 DAC
WO - 寫入所有者 S - 同步 AS - 訪問系統安全性 MA - 允許的最大值 GR - 一般性讀取 GW - 一般性寫入 GE - 一般性執行 GA - 全為一般性 RD - 讀取數據/列出目錄 WD - 寫入數據/添加檔案 AD - 附加數據/添加子目錄
REA - 讀取擴展屬性 WEA - 寫入擴展屬性 X - 執行/遍歷 DC - 刪除子項 RA - 讀取屬性 WA - 寫入屬性
繼承許可權可以優先於每種格式,但只套用於目錄:
(OI) - 對象繼承 (CI) - 容器繼承 (IO) - 僅繼承 (NP) - 不傳播繼承 (I) - 從父容器繼承的許可權
示例:
icacls c:\windows\* /save AclFile /T
- 將 c:\windows 及其子目錄下所有檔案的ACL 保存到 AclFile。
icacls c:\windows\ /restore AclFile
- 將還原 c:\windows 及其子目錄下存在的 AclFile 內所有檔案的 ACL。
icacls file /grant Administrator:(D,WDAC)
- 將授予用戶對檔案刪除和寫入 DAC 的管理員許可權。
icacls file /grant *S-1-1-0:(D,WDAC)
- 將授予由 sid S-1-1-0 定義的用戶對檔案刪除和寫入 DAC 的許可權。
關於C糟整個盤符被鎖定的解決辦法
當使用這個命令 cacls c:\ /p administrator:N 後,你將失去對系統C糟控制權.這時,一般的方法
cacls c: /p administrator:F 命令恢復許可權已經不可行了,可以用下面的一個方法嘗試:
1、首先打開Windows中的任何一個視窗,執行“工具”選單下的“資料夾選項”命令,選擇“查看”標籤,將“使用簡單檔案共享(推薦)”複選框前的(√)清除掉,單擊“確定”或“套用”;
2、用滑鼠右鍵單擊已設定了拒絕訪問的資料夾或驅動器,執行右鍵選單中的“屬性”命令,選擇“安全”標籤,單擊“高級”按鈕,選擇“審核”標籤,(win7 或 vista用戶中有許可權時,點“繼續”)
單擊“添加”按鈕,單擊“高級”按鈕,單擊“立即查找”——選擇“Administrator”計算機管理員用戶,單擊“確定”,再單擊“確定”;設定該用戶下的訪問許可權完全控制,再“確定”。過程中彈出 更改許可權視窗 時,點是,出錯再點取消,
3、重複以上操作步驟,選擇用戶為:everyone,設定其訪問許可權完全控制.並套用即可取消驅動器或資料夾的拒絕訪問了
4、如果在做完後,再查看許可權,變為全為拒絕時,再重複2,3就可以了
使用WinPE系統取回完全控制許可權
如果出現對於按照 “ 關於C糟整個盤符被鎖定的解決辦法”操作還是不行的情況,即在第二步點擊“繼續”之後,彈出的對話框是“ 無法打開訪問控制編輯器。拒絕訪問。”如圖,
則可以嘗試重啟電腦,並運行winPE系統(能夠安裝win7系統所使用的winPE),進入系統之後,在C糟上右鍵,選擇屬性——>安全——>組或用戶名中選中Administrators——>編輯——>高級——>更改許可權——>選擇Administrators——>編輯——>選中“完全控制”複選框,確定之後,重啟電腦即可擁有對C糟的完全控制許可權,當然,前提是以Administrator的身份登錄。