必须通过ntfs权限系统禁用写入、修改、删除操作才能真正实现文件不可修改:一、在安全选项卡中添加用户并仅勾选“读取”和“读取和执行”,取消所有写入类权限;二、若编辑按钮灰色,需先通过高级安全设置获取所有权;三、禁用继承并清除旧权限后显式添加纯净只读规则;四、命令行用takeown获取所有权后,icacls /deny拒绝w/m/d等权限。
要让某个文件在windows中真正“不能修改”,仅靠右键属性里的“只读”勾选是不够的——它只是个提示标记,有写入权限的用户仍可另存覆盖或直接编辑保存。必须通过ntfs权限系统,在底层禁止写入、修改、删除等操作。
直接在安全选项卡里禁用写入类权限
这是最常用也最直观的方法,适合单个文件或少量文件:
- 右键该文件 → 【属性】→ 切换到【安全】选项卡
- 点击【编辑】→ 【添加】→ 输入你的用户名(或Users组)→ 【检查名称】确认
- 选中刚添加的用户/组,在下方权限列表中:
✅ 勾选“读取”和“读取和执行”(确保能打开查看)
❌ 取消勾选“写入”“修改”“删除”“删除子文件夹及文件”(对单个文件,“删除子文件夹及文件”项不生效,但保留取消更稳妥) - 点击【应用】→ 【确定】
先获取所有权再设权限(适用于灰色不可编辑时)
如果你不是该文件的所有者,【编辑】按钮会变灰。此时需先取得控制权:
- 右键文件 → 【属性】→ 【安全】→ 【高级】
- 点击“所有者”右侧的【更改】→ 输入你的用户名 → 【检查名称】→ 【确定】
- 勾选“替换子容器和对象的所有者”(仅影响该文件,可不勾)
- 点击【应用】→ 【确定】后,再回到【安全】选项卡编辑权限
禁用继承并清除旧规则(防上级策略覆盖)
若该文件位于一个权限宽松的父文件夹下(比如Administrators有完全控制),继承来的权限可能覆盖你设的限制。这时需切断继承:
- 右键文件 → 【属性】→ 【安全】→ 【高级】
- 点击【禁用继承】→ 选择“从此对象中删除所有已继承的权限”
- 点击【添加】→ 添加你的用户名 → 仅勾选“读取”和“读取和执行”
- 其余所有权限(尤其是写入、修改、删除)一律不勾
- 点击【确定】→ 【应用】→ 【确定】
命令行快速设置(适合批量或脚本)
以管理员身份运行PowerShell或CMD:
- 先获取所有权:
takeown /f "C:\path\to\file.txt" - 再拒绝写入与修改权限:
icacls "C:\path\to\file.txt" /deny Everyone:(W,M,D,WD,AD)
(W=写入,M=修改,D=删除,WD=删除子项,AD=更改权限;也可把Everyone换成具体用户名)











