欢迎各位兄弟 发布技术文章
这里的技术是共享的
在 Linux 文件系统中,删除文件(delete)的实际权限取决于父目录的写权限(w
),而非文件本身的权限。具体规则如下:
删除权限的本质
删除文件本质上是 修改其父目录的内容(即从目录中移除该文件的条目),因此需要 父目录的写(w
)权限,而不是文件本身的权限。
即使你对文件本身有写权限(w
),但如果 父目录没有写权限,你依然无法删除该文件。
文件权限的作用
文件的 w
权限仅控制对文件 内容的修改(如编辑、清空文件),与删除无关。
示例中的 test.txt
权限是 rw-rw-r--+
,即使你对其有 w
权限,也无法直接决定能否删除它。
目录权限的要求
在目录中创建/删除文件(即修改目录条目)。
重命名文件(需同时有目录的 x
权限)。
对目录的 w
权限允许用户:
附加权限(ACL/SELinux)
你的示例中权限末尾有 +
(如 rw-rw-r--+
),表示存在 ACL(访问控制列表),可能额外定义了一些权限规则。需通过 getfacl
命令查看具体权限。
删除文件的条件:
bashrm test.txt # 能否成功取决于父目录的 `w` 权限,而非文件权限。
检查父目录权限:
bashls -ld $(dirname test.txt) # 查看父目录权限
删除文件 → 需要父目录的 w
权限 + x
权限(用于访问目录内容)。
文件本身的 w
权限仅控制文件内容的修改,与删除无关。
若遇到权限问题,请检查父目录权限及可能的 ACL/SELinux 限制。