腳本:Cacls命令及其應用實例

Cacls,很強大的一個命令。其主要用途在於能夠對各文件夾目錄的用戶權限進行快速設置。不論多少的文件夾,也不論多複雜的文件目錄,一個命令便可搞定。編輯器

在往下看以前,請牢記:如下命令切不可對C盤及系統文件夾使用!!特此警告。除非你自覺得是NB人士!學習

順便加一句,若是發現重啓後屏幕提示:autochk program not found, skipping autocheck。並立刻進入藍屏,提示:stop:c 000021a unknown hard error。恭喜,練功的絕好時機到了!不要到網上亂搜,沒用的。也沒必要重裝系統。解決辦法見下一篇文章!spa

Cacls命令的使用格式以下:對象

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

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 替換指定用戶的訪問權限。
                 Perm 能夠是: N 無
                              R 讀取
                              W 寫入
                              C 更改(寫入)
                              F 徹底控制
   /D user       拒絕指定用戶的訪問。
在命令中可使用通配符指定多個文件。
也能夠在命令中指定多個用戶。ip

縮寫:
   CI - 容器繼承。
        ACE 會由目錄繼承。
   OI - 對象繼承。
        ACE 會由文件繼承。
   IO - 只繼承。
        ACE 不適用於當前文件/目錄。容器

 

下面舉幾個例子來看看Cacls命令如何使用。擴展

一、在命令編輯器中使用file

C:\Temp>Cacls %cd% /t /c /d samaria
是否肯定(Y/N)?Y
處理的目錄: C:\Temp
文件名、目錄名或卷標語法不正確。權限

C:\Temp>Cacls %cd% /t /c /g samaria:f
是否肯定(Y/N)?Y
處理的目錄: C:\Temp
處理的文件: C:\Temp\text.txt
處理的目錄: C:\Temp\新建文件夾

C:\Temp>

簡析:
上述第一行命令將拒絕samaria用戶訪問c:\temp目錄,第二個命令則從新賦予samaria用戶徹底控制權限。%cd%表示當前路徑。其實這裏能夠用./.代替當前路徑,即命令:calcs ./. /t /c /d samaria, 但二者(%cd%與./)又有其不一樣之處,前者是一個純粹的路徑,所以上面的兩個命令能夠連續執行,但./.不行。後者在命令執行時將自身定位到c:\temp目錄下,但該目錄已被拒絕訪問,因此會出錯,用Cacls ./. /t /c /g samaria:f命令將獲得另外一種結果(也不妨一試:)),此時應該用.(./)代替當前路徑!以下:

C:\Temp>Cacls ./. /t /c /d samaria
是否肯定(Y/N)?Y
處理的目錄: C:\Temp
文件名、目錄名或卷標語法不正確。

C:\Temp>Cacls . /t /c /g samaria:f
是否肯定(Y/N)?Y
處理的目錄: C:\Temp
處理的文件: C:\Temp\text.txt
處理的目錄: C:\Temp\新建文件夾

C:\Temp>


二、在批處理文件中使用(下面爲幾個bat文件的具體內容)

(1.bat)

@Echo Y|Cacls %* /t /c /d samaria
@Echo off

 

(2.bat)

@Echo Y|Cacls %* /t /c /p samaria:f
@Echo off

 

(3.bat)

@Echo Y|Cacls ./. /t /c /d samaria
@Echo off

 

簡析:
使用時將須要的文件拖動到1.bat或2.bat上,則該文件就會被拒絕訪問(1.bat)或者給予控制權限(2.bat)。其中,Y|Cacls表示執行並將Y值賦予Cacls命令,%*是for命令的參數,在這裏使用拖動方式即調用了for命令,*是通配符,拖動使用時,%*與%1等價,若改成%0會有什麼結果?更多擴展參數可參考for命令的說明。
3.bat文件中採用了相對路徑,所以使用它時不須要拖動文件,直接雙擊3.bat,便可將當前目錄(即3.bat所在的文件夾)設置爲「拒絕訪問」。這個命令中,若將路徑換成./或者../.,試試會有什麼不一樣?但不要在不明白相對路徑含義的狀況下可隨意更換路徑符號,不然極可能出現意外的嚴重後果!

好了,上面基本上將Cacls命令的用法寫完了,更復雜的就不會。這些天沒事就學習和搗鼓了幾個dos命令,將Cacls詳細地寫在這裏,一來做備忘筆記,二來也能夠給有須要的朋友一點參考。

相關文章
相關標籤/搜索