命令行修改文件文件夾訪問權限 cacls, 修改hosts內容方法


背景

日常使用Windows的過程中,hosts(C:\Windows\System32\drivers\etc)文件可能被一些程序串改,因此在網上找到禁止/允許修改hosts文件的bat腳本,但是在使用過程中有遇到了新的麻煩,特記錄下相關問題的解決方法。

禁止/允許修改hosts文件的bat腳本

Hosts是一個沒有擴展名的系統文件,可以用記事本等工具打開,其作用就是將一些常用的網址域名與其對應的IP地址建立一個關聯“數據庫”,當用戶在瀏覽器中輸入一個需要登錄的網址時,系統會首先自動從Hosts文件中尋找對應的IP地址,一旦找到,系統會立即打開對應網頁,如果沒有找到,則系統會再將網址提交DNS域名解析服務器進行IP地址的解析。

打開記事本,根據需要輸入以下代碼:
1、 禁止修改HOSTS文件:
attrib +r +a +s +h %windir%\system32\drivers\etc\hosts
echo y|cacls %windir%\system32\drivers\etc\hosts /g everyone:r

2、允許修改HOSTS文件:
echo y|cacls %windir%\system32\drivers\etc\hosts /g everyone:f
attrib -r -a -s -h %windir%\system32\drivers\etc\hosts

保存為.BAT格式后雙擊運行即可,當然也可以在CMD中逐條輸入。
注:以上內容來自百度知道--怎樣防止hosts被修改

遇到的新問題-cacls拒絕訪問

執行了上面的“禁止修改HOSTS文件”的腳本后,當自己想要去修改hosts文件,執行“允許修改HOSTS文件”文件時,有時候會遇到“cacls拒絕訪問”的情況,導致無法獲取到修改hosts文件的權限。

解決方法

 終於,在 命令行修改文件/文件夾訪問權限 cacls, 修改hosts內容方法 中找到了解決的方法。內容如下:

一次不小心,將移動硬盤中文件的權限做了修改,后來倒是挺順利,再添加回去就行了。

可是,有一點點小問題,經過查詢和實驗,終於解決。

問題描述如下:某一個文件夾的權限還是無法讓我正常使用,這時一般情況下,我只需要點開屬性對話框,點擊安全標簽,點擊“高級”在里邊添加上權限,確定之后,再從安全中選中某用戶,添加權限,基本就可以解決。但是,這次卻有點棘手,我換了一台電腦,點開屬性對話框,竟然找不到“安全”標簽,不知道是它的設置問題還是因為我的是移動硬盤的緣故。總之一時半會兒我是無法使用這個文件夾了。

解決:谷歌了下下,決定用命令行方式添加該文件夾權限。

現在已經成功,將過程記錄下來,一來方便自己再次遇到相同可以參考查證,二來如果有網友同我一樣遇到相同問題,也可做一參考。

越來越多的用戶使用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
     使用Cacls命令查看C盤WINDOWS目錄訪問控制權限。

點擊“開始→運行”,運行CMD,切換到C根目錄,執行“cacls WINDOWS”在窗口中就會列出各用戶對WINDOWS目錄的訪問控制權限項目。如果想查看WINDOWS目錄中所有文件訪問控制權限,輸入“cacls WINDOWS\ . ”命令即可。
   2.修改目錄和ACL
   如果要修改目錄和文件的訪問權限,使用命令“cacls WINDOWS /t /e /c /g Administrator:f”,這樣就賦予Administrator對WINDOWS文件夾完全控制權限。
  如果要替換用戶訪問權限:使用命令“cacls WINDOWS /t /e /c /p Administrator :r ”
  如果要撤銷用戶訪問權限:使用命令“cacls WINDOWS /t /e /c /r Administrator ”
   如果要拒絕用戶訪問:運行“cacls WINDOWS /t /e /c /d Administrator ”即可。 

又一次重裝系統之后,裝了最新的IDM,按照網上的破解方法,修改了hosts文件,以讓IDM無法聯系server進行驗證.

修改完畢之后,擔心IDM自行修改hosts內容,從而破解失敗,於是用cacls命令將hosts的權限修改的他媽都不認識它. 

又一日,想要修改hosts內容做些測試,卻死活都沒法修改,打開也不行,直接報access isdenied,cmd命令copy也不行,再次執行cacls命令,賦予Administrator全部權限也失敗.完全搞不定了,這下真的是他媽都不認識它.

最終,參考stackoverflow上一個說法,修改成功.在這里po出來供廣大網友參考.

http://stackoverflow.com/questions/8619541/denied-access-to-hosts-file

cmd右鍵run as administrator

執行

takeown /f C:\Windows\System32\drivers\etc\hosts && icacls C:\Windows\System32\drivers\etc\hosts /grant administrators:F

然后notepad++打開,成功.

參照原文,完整命令是--

takeown /f C:\Windows\System32\drivers\etc\hosts && icacls C:\Windows\System32\drivers\etc\hosts /grant administrators:F
attrib -r -h -s C:\Windows\System32\drivers\etc\hosts
%windir%\notepad.exe C:\Windows\System32\drivers\etc\hosts


免責聲明!

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



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