新聞| | PChome| 登入
2009-04-10 17:58:05 | 人氣3,460| 回應0 | 上一篇 | 下一篇
推薦 0 收藏 0 轉貼0 訂閱站台

用Cacls修改文件訪問控制權限

現在越來越多的用戶使用NTFS文件系統來增強Windows系統的安全性。通常是在圖形用戶界面(GUI)的「安全」選項卡中對文件或目錄訪問控制權限進行設置。還有一種設置方式大家可能很少使用,這就是Cacls命令。雖然它是一個基於命令行的命令,使用起來有點繁瑣,但只要你合理利用,也會在提高系統安全性方面起到很好的效果。Cacls命令使用格式如下:

  Cacls filename [/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——拒絕指定用戶的訪問。

  1. 查看目錄和ACL

  以Windows XP系統為例,筆者使用Cacls命令查看E盤CCE目錄訪問控制權限。點擊「開始→運行」,在運行對話框中輸入「CMD」命令,彈出命令提示符對話框,在「E:\>」提示符下輸入「Cacls CCE」命令,接著就會列出Windows XP系統中用戶組和用戶對CCE目錄的訪問控制權限項目。如果想查看CCE目錄中所有文件訪問控制權限,輸入「Cacls cce\.」命令即可。

  2. 修改目錄和ACL

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

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

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

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

  以上只是簡單介紹Cacls命令的使用,建議大家親自嘗試一下,你會發現它還有很多奇妙的功能。

 

 

 

 

 

說明

cacls.exe 是用來管理 ACL 的工具, ACL 翻成中文是「存取控制清單」。 ACL 的功用是列出哪些使用者對電腦上的哪些資源有哪些權限,當使用者要存取某個資源的時候,就可以透過 ACL 檢查這個存取動作是否合法。這個資源可能是檔案、資料夾或印表機……等,而權限可以是讀取、寫入、執行……等。在 ACL 裡面包含了許多 ACE ,而每個 ACE 就代表某個使用者對某項資源具有哪些權限。

在 Windows 平台上只有 NTFS 的磁區具有 ACL 的功能,如果在 NTFS 磁區上的某個檔案(資料夾)上按下滑鼠右鍵 → 內容 → 安全性,就可以看到這個檔案(資料夾)的 ACL ,大約是這個樣子:
資料夾

  • WPG2 Plugin Not Validated *

檔案

  • WPG2 Plugin Not Validated *

資料夾的權限種類比檔案多了一種「清單資料夾內容」。

使用方式

cacls.exe 的語法如下:

cacls filename [/T] [/E] [/C] [/G user:perm [...]] [/R user [...]]
               [/P user:perm [...]] [/D user [...]]

參數說明如下:

/T

變更目錄及其子目錄下所有指定檔案的 ACL 。例如用

> cacls test/*.txt /t

可以指定 test 目錄及其子目錄下所有的純文字文件檔。

/E

編輯 ACL 而非取代。不加上 /E 的話會先將 ACL 清空,再將指定的使用者權限加上去。

/C

忽略錯誤並繼續執行。

/G user:perm

授與 (Grant) 使用者權限。 perm 的值可以是下面其中一個:

perm 描述 允許 拒絕
r 讀取 讀取及執行、清單資料夾內容、讀取
w 寫入 寫入
c 變更 修改、讀取及執行、清單資料夾內容、讀取、寫入
f 完全控制 完全控制、修改、讀取及執行、清單資料夾內容、讀取、寫入

/R user

撤銷 (Revoke) 指定使用者的權限,需和 /E 同時使用。

/P user:perm

取代 (Replace) 指定使用者的權限。 perm 的值可以是下面其中一個:

perm 描述 允許 拒絕
n 沒有權限 完全控制、修改、讀取及執行、清單資料夾內容、讀取、寫入
r 讀取 讀取及執行、清單資料夾內容、讀取
w 寫入 寫入
c 變更 修改、讀取及執行、清單資料夾內容、讀取、寫入
f 完全控制 完全控制、修改、讀取及執行、清單資料夾內容、讀取、寫入

/D user

拒絕 (Deny) 指定使用者存取,相當於 /P user:n

權限說明

完全控制

具有所有的權限。

修改

選擇「修改」會自動加上「讀取及執行」、「讀取」、「寫入」權限,此外「修改」還可以刪除、重新命名檔案。

讀取及執行

讀取與執行檔案,選擇這一個權限會自動加上「清單資料夾內容」與「讀取」這兩個權限。

清單資料夾內容

僅限瀏覽資料夾裡面的檔案清單。

讀取

讀取檔案/資料夾。

寫入

新增檔案或變更已存在的檔案內容(不包括重新命名)。

範例

新增權限

讓 Guest 帳號可以寫入 test 目錄:

> cacls test /e /g Guest:w

變更 ACL

將 test 目錄變更成只有 Administrators 可以完全控制:

> cacls test /g Administrators:f

顯示權限

顯示 ACL :

> cacls test

結果可能為

C:\\test BUILTIN\\Administrators:(OI)(CI)F

輸出結果裡面的 (OI) 、 (CI) 、 (IO) 代表意思如下:

輸出 ACE 套用到
OI 此資料夾及檔案。
CI 此資料夾及子資料夾。
IO ACE 不套用到目前的檔案/目錄。
無輸出訊息 只有此資料夾。
(IO)(CI) 此資料夾、子資料夾及檔案。
(OI)(CI)(IO) 只有子資料夾及檔案。
(CI)(IO) 只有子資料夾。
(OI)(IO) 只有檔案。

注意事項

永遠的控制者

擁有者的設定超越於 ACL ,也就是對於妳所建立的檔案或資料夾,妳永遠有所有的權限。那麼怎麼看檔案或擁有者是誰呢?在檔案或資料夾上按滑鼠右鍵 → 內容 → 安全性 → 進階 → 擁有者,就可以看到該項資源的擁有者。

  • WPG2 Plugin Not Validated *

誰可以變更 ACL

具有「完全控制」權限的使用者才可以變更 ACL 。

使用於批次檔

在沒有加上 /E 選項時,會出現以下詢問:

您是否確定 (Y/N)?

並等待使用者輸入 Y 或 N 並按下 Enter 。如果要在批次檔裡面使用的話,可以使用 pipe ,範例如下:

echo y| cacls test /t /g "Administrators":f

值得注意的是 echo y 與 | 之間不可以有任何空白。

權限之繼承

一般來說資料夾 A 下的子資料夾或檔案會繼承 A 的 ACL 。例如下圖的「從父項繼承套用到子物件的權限項目,包括明確定義於此的項目」:

  • WPG2 Plugin Not Validated *

如果不想繼承,而想為該資料夾或檔案特別設定不一樣的 ACL ,可以將該選項取消掉。

台長: Kenny
人氣(3,460) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: 病毒與駭客 |
此分類下一篇:關閉Autorun大解析
此分類上一篇:xcopy 的 /EXCLUDE: 參數使用方式 與常用備份參數

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文