linux中“不可修改”由三方面决定:一是权限位无w,二是存在immutable(i)扩展属性,三是文件系统挂载为ro;三者任一成立即不可修改,三者均不成立才真正可写。

Linux 中没有“不可修改”这一独立属性,所谓“不可修改”实际是通过移除写权限(w)实现的;只读即指文件对某类用户仅有读权限(r)、无写权限(-)。判断一个文件是否为只读,核心是查看其权限位中是否有 w,以及是否被设为 immutable(不可变)扩展属性——后者才是真正意义上的“系统级不可修改”。
用 ls -l 查看基础读写权限
运行以下命令:
ls -l 文件名
输出如 -rw-r--r-- 或 -r--r--r--:
- 第2–4位(如 r--):所有者权限 → 若含 w,所有者可修改;若为 r--,所有者只读
- 第5–7位(如 r--):所属组权限
- 第8–10位(如 r--):其他用户权限
只要对应身份位置上没有 w,该身份就无法修改文件内容(但可能仍能删除——取决于父目录的写权限)。
检查 immutable 属性(真正不可修改)
普通权限可被拥有者修改,而 immutable 属性需 root 权限设置,且连 root 也无法直接编辑或删除,除非先解除。用以下命令检测:
lsattr 文件名
若输出含 i 标志,例如:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
----i---------e--- 文件名
说明该文件已被设为不可变(immutable),此时即使你是所有者或 root,也无法修改、重命名、删除或链接它。
确认文件是否被挂载为只读
有时文件本身权限正常,但所在文件系统被整体挂载为只读,导致所有文件都不可写。检查方法:
mount | grep "$(df . | tail -1 | awk '{print $1}')"
或更通用:
findmnt -T .
观察输出中是否含 ro(read-only)字样。若为 ro,则整个分区只读,任何文件都无法修改,与单个文件权限无关。
快速综合判断建议
- 先执行 ls -l 文件名:看对应身份是否有 w
- 再执行 lsattr 文件名:确认有无 i 标志
- 最后执行 findmnt -T .:排除文件系统级只读干扰
三者任一成立,都会导致“无法修改”;只有三者均不成立,文件才真正可写。










