You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何文件权限设为000后,所有者仍能用vi的:wq!保存文件?

为什么文件权限设为000后,所有者仍能通过vi强制保存?
  • vi强制保存的底层逻辑不是直接修改原文件:
    vi编辑文件时,会先在当前目录(或/tmp目录)创建一个临时交换文件(比如.test.swp),你输入的内容都会先写入这个临时文件。执行:wq!时,vi的操作是:先删除原文件test,再把临时文件重命名为test。这个过程中,权限检查的核心是你对文件所在目录是否有写和执行权限——你作为目录的创建者(默认拥有这些权限),自然能完成删除和重命名操作,和原文件的000权限无关。

  • 文件所有者的特殊权限优先级更高:
    Linux/Unix的权限模型里,文件所有者拥有超越文件权限位的控制权。哪怕文件权限是000,所有者依然可以修改文件权限、删除文件,甚至通过工具绕过权限位直接操作文件内容。vi的强制保存正是利用了所有者的这一特殊权限,配合目录权限完成替换。

  • 可以做个验证:如果把文件所在目录的权限改成000,再用vi打开test执行:wq!,就会保存失败——因为你没有目录的写权限,无法删除原文件或创建新文件。

内容的提问来源于stack exchange,提问作者Bover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 19:52:03