命令行修改文件文件夹访问权限 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

时间: 2024-09-28 20:56:30

命令行修改文件文件夹访问权限 cacls, 修改hosts内容方法的相关文章

Linux的文件访问权限及修改权限命令chmod

Linux的文件访问权限及修改权限命令chmod Mxx000 Mxx000 11 人赞同了该文章 Linux的文件访问权限可以使用ls -l进行查看,如下图这样操作就可以了. 一.访问权限 访问权限分为读(read).写(write).执行(execute)三种, 并且涉及到文件所有者(user).文件所属组(group).其他人(other)三个主体. 选取上图红框中的两行为例,结合下面的表格先讲一下基本结构: 第一位表示文件类型 第二-十位表示权限:每三位一组,共三组,分别表示三个主体对应

01 安装apache php配置 时区 环境变量 安装mysql 虚拟主机 文件夹访问权限 目录别名

php介绍 简介与历史 应用领域: php运行环境 php语言运行原理 安装apache: PHP的命令行运行模式(独立运行): 配置apache以运行php网页 配置php的基本运行环境 确定php配置文件(php.ini)的位置: 配置时区: 设置环境变量 检测apache配置文件语法 配置数据库连接机制 安装mysql数据库 虚拟主机配置 端口监听: 主机配置关键项 配置文件夹访问权限 主机别名设置 文件夹访问控制的文件控制方式 目录别名设置Alias 多站点配置: php介绍 简介与历史

c#调用 WinRAR.exe以命令行形式实现文件、文件夹的解压缩

在实际项目应用中会偶尔使用文件的压缩上传以及服务器端的加压处理,故写此文记录以备不时之需. 1.自己编写的ZipHelper类. 1 public static class ZipHelper 2 { 3 private static string pathExe = AppDomain.CurrentDomain.BaseDirectory + @"Resource\WinRAR.exe"; 4 /// <summary> 5 /// 使用Gzip方法压缩文件 6 ///

如何优雅地使用命令行设置windows文件关联

如何优雅地使用命令行设置windows文件关联 使用ftype查看帮助 设置关联所需命令有ftype assoc,需要管理员权限.如果忘记使用方法可通过ftype的帮助获取查看方法 C:\WINDOWS\system32>ftype /? 显示或修改用在文件扩展名关联中的文件类型 FTYPE [fileType[=[openCommandString]]] fileType 指定要检查或改变的文件类型 openCommandString 指定调用这类文件时要使用的开放式命令. 键入 FTYPE

Linux服务器通过aws命令行上传文件至S3

目的Linux服务器通过AWS命令行上传文件至S3 配置打开你的AWS控制台: 连接你的Linux服务器,按照以下步骤操作: # 安装pip yum -y install python-pip   # 安装awscli pip install awscli   # 初始化配置 aws configure # 做这一步时系统会要求你输入"访问密钥ID"."私有访问密钥"."默认区域名称"."默认输出格式",前两个在创建IAM用户

winrar 命令行 解压文件

1,最简单的压缩命令:winrar a asdf.txt.rar asdf.txt a的意思是进行压缩动作,后面第一个参数是被压缩后的文件名,后缀当然是rar了,最后面 的参数就是要被压缩的文件名 2,最简单的解压缩命令:winrar e asdf.txt.rar e的意思是执行解压缩,解压缩的文件是后面这唯一的参数,但是这个e解压缩是把解出来的 文件释放到当前目录下面,与asdf.txt.rar文件并列了,因此,更加实用的是下面的带路径 解压缩. 3,带路径的解压缩命令:winrar x as

java学习总结(16.05.08)在windows下使用cmd命令行对java文件进行编译和执行

windows下利用cmd命令行可以调用jdk里的javac.exe和java.exe对java文件进行编译和执行,前提是jdk已成功安装并正确配置相关环境变量(jdk安装与环境变量的配置方法:http://blog.csdn.net/qq_32099621/article/details/51339868) 下面来说一下windows下如何使用cmd命令行来编译执行java文件 首先找到需要编译和执行的java文件 这里我要编译和执行这个java文件 按组合键win+r调出"运行",

用OpenSSL命令行生成证书文件(客户端)

证书文件生成 也许很多人和本人一样深有体会,使用OpenSSL库写一个加密通讯过程,代码很容易就写出来了,可是整个工作却花了了好几天.除将程序编译成功外(没有可以使用的证书文件,编译成功了,它并不能跑起来,并不表示它能正常使用,所以--),还需生成必要的证书和私钥文件使双方能够成功验证对方. 找了n多的资料,很多是说的很模糊,看了n多的英文资料,还是没有办法(不知道是不是外国朋友都比较厉害,不用说明得太清?),无意间找到yawl([email protected])写的文章,难得的汉字(呵呵).

Cmd命令行编译c#文件

使用命令行编译C#文件的方法: 首先,在系统变量的Path变量中添加csc.exe文件路径 路径大概是这个样子:C:\Windows\Microsoft.NET\Framework64\v4.0.30319;  (.net版本也许不同) 在cmd中输入csc.exe验证是否成功. cs文件生成exe文件:(若要编译生成EXE文件则源文件中需包含main 方法) csc /out:file.exe  file.cs       //使用 /out 指定输出的文件 如果编译的stu.cs 和 fil