为何非所有者可删除755权限文件?无编辑权限却能删改是何原因?
为什么非所有者能删除755权限的文件,以及无编辑权限却能替换文件?
嘿,这两个问题其实指向了同一个容易被新手忽略的Linux/Unix文件系统核心规则:控制文件删除/替换权限的不是文件本身,而是它所在的目录! 我来给你拆解清楚:
问题一:非所有者能删除755权限的文件
文件的权限(比如755,对应-rwxr-xr-x)管的是你能不能读取文件内容、修改文件内容、执行文件,但删除操作本质上不是对文件本身的操作——而是修改了文件所在目录的内容。
目录其实是一种特殊的文件,里面存储的是「文件名 ↔ inode编号」的映射关系。当你删除一个文件时,你其实是在目录里移除了这个映射条目。所以只要你对这个目录拥有写入(w)和执行(x)权限,哪怕你不是文件的所有者,也能删掉它。
举个例子:如果文件所在目录的权限是drwxrwxr-x(775),那同组用户或其他用户都有目录的w权限,自然能删除目录里的任何文件,不管文件本身是755还是其他权限。你可以用ls -ld 目录名来查看目录的权限。
问题二:无编辑权限却能删除并替换文件
同样的逻辑:你不能编辑原文件,是因为原文件本身的w权限没开放给你,但只要你对目录有w+x权限,你就可以先删掉原文件,再新建一个同名的文件。
新建的文件默认会以你的用户身份作为所有者,权限会遵循系统的umask设置,所以你对这个新文件拥有完整的控制权,自然能编辑它——这就实现了「删除并替换」的效果,本质上不是修改原文件,而是替换了目录里的条目。
核心总结
把这俩规则刻进脑子里:
- 文件权限:控制你对文件内容的操作(读、写、执行)
- 目录权限:控制你对目录条目的操作(添加、删除、重命名文件/子目录)
内容的提问来源于stack exchange,提问作者user3050386
相关产品推荐
相关产品推荐

