隨著Windows XP/Server 2003的流行,越來越多的用戶開始選擇NTFS文件系統,NTFS的好處自然是大大增強了系統的安全性,在“安全”標簽頁下,我們可以在這裡為不同級別的用戶設置相應的訪問控制權限,包括完全控制、修改、讀取和運行、列出文件夾目錄、讀取、寫入、特別的權限等,你只需要在“允許”和“拒絕”下簡單勾選即可,點擊“高級”按鈕還可以設置更多的特殊權限,這裡就不多說了。
其實,除了在圖形用戶界面下對文件或文件夾的訪問控制權限進行設置外,我們還可以在命令行方式下完成這項工作,這在由於某些原因無法進入圖形用戶界面時特別實用,雖然使用時有些麻煩,但卻可以救急。
一、使用Cacls.exe命令
這是一個在Windows 2000/XP/Server 2003操作系統下都可以使用的命令,作用是顯示或者修改文件的訪問控制表,在命令中可以使用通配符指定多個文件,也可以在命令中指定多個用戶。命令語法如下:
Cacls filename [/T] [/E] [/C] [/G usererm] [/R user [...]] [/P usererm [...]] [/D user [...]]
Filename:顯示訪問控制列表(以下簡稱ACL)
/T:更改當前目錄及其所有子目錄中指定文件的ACL
/E:編輯ACL而不替換
/C:在出現拒絕訪問錯誤時繼續
/G Userer:perm:賦予指定用戶訪問權限,Perm代表不同級別的訪問權限,其值可以是R(讀取)、W(寫入)、C(更改,寫入)、F(完全控制)等。
/R user:撤銷指定用戶的訪問權限,注意該參數僅在與“/E”一起使用時有效。
/P user:perm:替換指定用戶的訪問權限,perm的含義同前,但增加了“N(無)”的選項。
/D user:拒絕指定用戶的訪問。
實例一:查看文件夾的訪問控制權限
例如,這裡我們希望查看h: emp文件夾的訪問控制權限,那麼只需要在“開始→運行”對話框或切換到命令提示符模式下,鍵入如下命令:Cacls h: emp
此時,我們會看到所有用戶組和用戶對h: emp文件夾的訪問控制權限項目,這裡的CI表示ACE會由目錄繼承,OI表示ACE會由文件繼承,IO表示ACI不適用於當前文件或目錄,每行末尾的字母表示控制權限,例如F表示完全控制,C表示更改,W表示寫入。
如果你希望查看該文件夾中所有文件(包括子文件夾中的文件)的訪問控制權限,可以鍵入“Cacls h: emp .”命令。
實例二:修改文件夾的訪問控制權限
假如你希望給予本地用戶wzj9999完全控制h: emp文件夾及子文件夾中所有文件的訪問權限,只需要鍵入如下命令:
Cacls h: emp /t /e /c /g wzj9999:f
這裡的“/t”表示修改文件夾及子文件夾中所有文件的ACL,“/e”表示僅做編輯工作而不替換,“/c”表示在出現拒絕訪問錯誤時繼續,而“/g wzj9999:f”表示給予本地用戶wzj9999以完全控制的權限,這裡的“f”代表完全控制,如果只是希望給予讀取權限,那麼應當是“r”。
實例三:撤銷用戶的訪問控制權限
如果你希望撤銷wzj9999用戶對h: emp文件夾及其子文件夾的訪問控制權限,可以鍵入如下命令:
cacls h: emp /t /e /c /r wzj9999
如果只是拒絕用戶的訪問,那麼可以鍵入如下命令:
cacls h: emp /t /e /c /d wzj9999
二、使用增強工具xcals.exe
在windows 2000資源工具包中,微軟還提供了一個名為xcacls.exe的文件控制權限修改工具,其功能較cacls.exe更為強大,可以通過命令行設置所有可以在windows資源管理器中訪問到的文件系統安全選項,我們可以從http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/xcacls-o.asp下載,安裝後即可使用。
xcacls.exe命令的語法和參數與cacls.exe基本相同,但不同的是它通過顯示和修改文件的訪問控制列表(acl)執行此操作。在“/g”參數後除保持原有的perm權限外,還增加了spec(特殊訪問權限)的選項,另外還增加了“/y”的參數,表示禁止在替換用戶訪問權限時出現確認提示,而默認情況下,cacls.exe是要求確認的,這樣在批處理中調用cacls.exe命令時,程序將停止響應並等待輸入正確的答案,引入“/y”參數後將可以取消此確認,這樣我們就可以在批處理中使用xcacls.exe命令了。
實例一:查看文件或文件夾的權限
在“開始→運行”對話框或切換到命令提示符模式下,注意請事先將“c:program files esource kit”添加到“系統屬性→高級→環境變量→系統變量”中,或者通過cd命令將其設置為當前路徑,否則會提示找不到文件,然後鍵入如下命令:
xcacls h: emp
此時,可以查看到所有用戶組或用戶對h: emp文件夾的訪問控制權限,io表示此ace不應用於當前對象,ci表示從屬窗口將繼承此ace,oi表示從屬文件將繼承該ace,np表示從屬對象不繼續傳播繼承的ace,而每行末尾的字母表示不同級別的權限,例如f表示完全控制,c表示更改,w表示寫入。
實例二:替換文件夾中的acl而不確認
xcacls h: emp /g administrator:rw/y
以上命令將替換h: emp文件夾中所有文件和文件夾的acl,而不掃描子文件夾,也不會要求用戶確認。
實例三:賦予某用戶對文件夾的控制權限
xcacls h: emp /g wzj9999:rwed;rw /e
以上命令將賦予用戶wzj9999對h: emp文件夾中所有新建文件的讀取、寫入、運行和刪除權限,但需要說明的是,這條命令只是賦予了用戶對文件夾本身的讀寫權限,而不包括子文件夾下的文件。
對普通用戶來說,cals.exe和xcacls.exe的作用可能不是那麼明顯,這在windows 2000/xp/server 2003的無人值守安裝中特別有用,管理員可以為操作系統所在的文件夾設置初始訪問權限;在將軟件分發到服務器或工作站時,還可以借助xcacls.exe提供單步保護,以防止用戶誤刪除文件夾或文件。