Cacls和ICacls


解釋: 

  Cacls:顯示或修改文件的訪問控制列表(ACL)

  ICACLS:顯示或修改自由訪問控制表(Dacl) 上指定的文件,並指定目錄中的文件應用於存儲的 Dacl。

  總結:顯示或修改文件訪問控制權限

相關術語:

  一個DACL(Discretionary Access Control List),其指出了允許和拒絕某用戶或用戶組的存取控制列表,當一個進程需要訪問安全對象系統就會檢查DACL來決定進程的訪問權。如果一個對象沒有DACL,則說明任何人對這個對象都可以擁有完全的訪問權限。

  一個SACL(System Acess Control List),其指出了在該對象上的一組存取方式(如:讀,謝,運行等)的存取控制權限細節的列表

  DACLSACL構成了整個存取控制列表Access Control List,簡稱ACL,ACL中的每一項我們叫做ACE(Acess Control Entry)

    以上是對DACL,SACL,ACL,ACE等相關術語的簡要介紹。


 

 Cacls使用格式:
  Cacls 文件名 [/T] [/E] [/C] [/G user:perm] [/R user [...]] [/P user:perm [...]] [/D user [...]]
  Filename——顯示訪問控制列表(以下簡稱ACL);
  /T——更改當前目錄及其所有子目錄中指定文件的 ACL;
  /E—— 編輯 ACL 而不替換;
  /C——在出現拒絕訪問錯誤時繼續;
  /G user:perm——賦予指定用戶訪問權限。Perm 可以是R(讀取)、W(寫入)、C(更改,寫入)、F (完全控制);

  /R user——撤銷指定用戶的訪問權限(僅在與 /E 一起使用);
  /P user:perm——替換指定用戶的訪問權限;

  /D user——拒絕指定用戶的訪問

 

實例:以Windows系統為例

  1.查看目錄和ACL
  在E:\>提示符下輸入“Cacls 文件名”命令,接着就會列出Windows系統中用戶組和用戶對文件名目錄的訪問控制權限項目。如果想查看CCE目錄中所有文件訪問控制權限,輸入“Cacls 文件名\?.?”命令即可。

  2.修改目錄和ACL:file(文件名)  user(用戶名)
  設置用戶訪問權限:我們經常要修改目錄和文件的訪問權限,使用Cacls命令就很容易做到。下面要賦予本機用戶user對E盤下file目錄及其所有子目錄中的文件有完全控制權限。在命令提示符對話框中輸入“Cacls file /t /e /c /g user:f ”命令即可。

  替換用戶訪問權限:將本機用戶user的完全控制權限替換為只讀權限。在命令提示符對話框中輸入“ Cacls file /t /e /c /p user:r ”命令即可。

  撤銷用戶訪問權限:要想撤銷本機用戶user對該目錄的完全控制權限也很容易,在命令提示符中運行“Cacls file /t /e /c /r user ”即可。

  拒絕用戶訪問:要想拒絕用戶user訪問file目錄及其所有子目錄中的文件,運行“Cacls file /t /e /c /d user”即可。

 

  某病毒調用calcs命令例子如下:

  病毒進程: c:\documents andsettings\administrator\local settings\temp\tp5.tmp

  行為:創建新進程

  目標: c:\windows\system32\cacls.exe

  命令行: cacls.exeC:\WINDOWS\system32\cmd.exe /e /t /g everyone:F

    意思就是給everyone用戶組(所有人)cmd.exe的完全控制


 

 

ICacls使用格式:(下列參數詳見表格)

 

 

  ICacls 文件名 /save Tofile [/T] [/C] [/L] [/Q]:將匹配名稱的文件的DACL存儲到Tofile中,以便將來與 /restore一起使用。

  ICacls directory [/substitute SidOld SidNew [...]] /restore Tofile:將存儲的DACL應用於目錄中的文件。

  ICacls 文件名 /reset [/T] [/G] [/L] [/Q]:更改所有匹配名稱的所有者,該選項不會強制更改所有身份,使用takeown.exe實用程序可實現該目的。

  ICacls 文件名 /findsid Sid [/T] [/C] [/L] [/Q]:查找包含顯式SID的ACL的所有匹配名稱。

  ICacls 文件名 /verify [/T] [/C] [/L] [/Q]:查找其ACL不規范或長度與ACE計數不一致的所有文件

  ICacls 文件名 /reset [/T] [/C] [/L] [/Q]:為所有匹配文件使用默認繼承的ACL替換ACL

  ICACLS 文件名 [/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 是權限掩碼,可以兩種格式之一指定:
        簡單權限序列:
                F - 完全訪問權限
                M - 修改權限
                RX - 讀取和執行權限
                R - 只讀權限
                W - 只寫權限
 
        繼承權限可以優先於每種格式,但只應用於
        目錄:
                (OI) - 對象繼承
                (CI) - 容器繼承
                (IO) - 僅繼承
                (NP) - 不傳播繼承

示例:

 

        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 的權限

 

1、強制將當前目錄下的所有文件及文件夾、子文件夾下的所有者更改為管理員組(administrators)命令:

takeown /f * /a /r /d y

2、將所有d:\documents目錄下的文件、子文件夾的NTFS權限修改為僅管理員組(administrators)完全控制(刪除原有所有NTFS權限設置):

cacls d:\documents\*.* /T /G administrators:F

3、在原有d:\documents目錄下的文件、子文件夾的NTFS權限上添加管理員組(administrators)完全控制權限(並不刪除原有所有NTFS權限設置):

cacls d:\documents\*.* /T /E /G administrators:F

4、取消管理員組(administrators)完全控制權限(並不刪除原有所有NTFS權限設置):

cacls \\Server\Documents\%username%\我的文檔 /t /e /r "mddq\domain admins"
cacls \\Server\Documents\%username%\桌面 /t /e /r "mddq\domain admins"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM