当前位置:首页 > 文章列表 > 文章 > linux > Linux 文件权限正确却删除失败怎么查:lsattr、chattr 不可变位与挂载属性

Linux 文件权限正确却删除失败怎么查:lsattr、chattr 不可变位与挂载属性

来源:17golang原创 2026-08-30 00:41:02 0浏览 收藏

删一个 root 用户也能写入的日志文件,却收到“Operation not permitted”,这类问题通常不是普通的读写权限。先检查文件属性,再判断目录权限和挂载状态,能把“权限看着没问题”的误判拆开。

删除失败时先执行 lsattr -- /var/tmp/app.log;如果结果含有 i,先用 chattr -i 解除不可变位,再重新检查目录权限和挂载属性。

要点速览

  • lsattr 看到的 i 表示文件不可变,普通删除会被内核拒绝。
  • chattr -i 只处理文件属性,不会替代目录写权限检查。
  • 目录没有写权限、文件系统只读时,解除不可变位也不能删除。
  • 修复后要用 lsattr、findmnt 和一次可控删除共同验收。

先把“权限正常”拆成三个检查面

Linux 删除文件看的是父目录的写入和执行权限,而不是文件本身的写权限。除此之外,文件的扩展属性和文件系统是否以只读方式挂载,也会在更早的层面拒绝操作。排查时不要一上来就递归改权限,先保留现场。

target=/var/tmp/app.log
ls -l -- "$target"
namei -l -- "$target"
lsattr -- "$target"
findmnt -T "$target" -o TARGET,SOURCE,FSTYPE,OPTIONS

这里的四条命令分别回答:文件当前模式是什么、路径上的目录权限如何、扩展属性是否含有 i、目标路径落在哪个挂载点以及是否带有 ro。先看结果再决定修复动作。

lsattr 检查不可变位并连接到目录权限和挂载属性的排查路径

lsattr 里的 i 为什么会拦住删除

lsattr 输出中的 i 是 immutable 属性。被标记的文件不能被修改、删除或重命名,即使文件模式是 -rw-r--r--,也可能返回 Operation not permitted。如果属性来自目录,还要继续检查目录本身,不能只盯着文件。

$ lsattr -- /var/tmp/app.log
----i--------- /var/tmp/app.log

$ rm -- /var/tmp/app.log
rm: cannot remove '/var/tmp/app.log': Operation not permitted

这时先记录属性,再判断变更是否经过审批。对业务日志、系统配置和证据文件,解除保护前应确认没有备份、审计或保留策略要求。

用 chattr -i 做最小修复

确认目标就是误加的不可变位后,使用精确路径解除属性,不要对整个目录递归执行。下面的顺序把“解除属性”和“删除文件”分成两个动作,中间可以插入复核。

target=/var/tmp/app.log
sudo chattr -i -- "$target"
lsattr -- "$target"
sudo rm -- "$target"

第二次 lsattr 不应再出现 i。删除命令成功后用 test ! -e 检查路径已经消失;如果仍然失败,回到父目录权限与挂载属性,不要重复执行 chattr。

chattr -i 解除不可变位后通过 lsattr 与 rm 验证删除结果

解除 i 仍失败时看目录和挂载点

目录没有写权限时,删除动作依然会失败。namei -l 能把 /var、/var/tmp 和目标文件的权限逐段列出来;目录至少需要对执行删除的用户开放写和执行权限。若 findmnt 的选项中出现 ro,则是文件系统只读,应该处理挂载或底层存储故障。

namei -l -- /var/tmp/app.log
findmnt -T /var/tmp/app.log -o TARGET,OPTIONS
test -w /var/tmp && test -x /var/tmp && echo "parent directory writable"
test ! -e /var/tmp/app.log && echo "delete verified"

如果是只读挂载,不要直接执行 mount -o remount,rw 作为默认答案。先确认为什么变成只读、是否存在 I/O 错误,再按机器的变更流程恢复;对生产盘来说,保护数据比立即删除一个文件更重要。

常见问题

文件权限是 644,为什么还是不能删除?

删除主要受父目录权限、不可变位和挂载模式影响。644 只描述文件模式,不能证明这三个检查面都允许删除。

chattr -i 会改变文件内容吗?

不会。它只移除 immutable 属性,但这个动作本身需要足够权限,并且应先确认保护位确实可以解除。

lsattr 没有 i 还要查什么?

继续看父目录的写和执行权限,再用 findmnt -T 检查是否只读;必要时查看内核日志中的存储错误。

把修复结果留成可复查证据

一次合格的验收至少包括:lsattr 不再显示 i,目标挂载点不是只读,父目录允许当前操作者写入和访问,最后用 test ! -e 得到删除后的明确状态。这样下次遇到相同错误,能区分属性保护、目录权限和存储故障,而不是继续盲目改 chmod。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
培训机构收取课程费后多久应开具发票:预收款、开票时点与留证培训机构收取课程费后多久应开具发票:预收款、开票时点与留证
上一篇
培训机构收取课程费后多久应开具发票:预收款、开票时点与留证
雾海盐沼里的黑色风车手机壁纸提示词:冷灰锁屏留白与暖金风向标变体
下一篇
雾海盐沼里的黑色风车手机壁纸提示词:冷灰锁屏留白与暖金风向标变体
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    465次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    528次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    546次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    495次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    316次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码