关于chmod权限不足的两种最常见情况和解决方法

chmod: changing permissions of 'file': Operation not permitted 是你执行 chmod 时最常见的报错。这个错误的根本原因是执行命令的进程没有足够的权限去修改目标文件的权限

情况 1:不是文件所有者(最常见)

现象:普通用户执行 chmod 修改别人的文件。

原因:Linux 权限模型中,只有文件所有者root 才能修改文件权限,如下图:

解决方法

# 方法1:用 sudo 提权(临时)
sudo chmod 755 /path/to/file

# 方法2:切换到文件所有者(如果有权限)
su - 文件所有者
chmod 755 /path/to/file

# 方法3:修改文件所有权(如果确实需要)
sudo chown 你的用户名 /path/to/file
chmod 755 /path/to/file

主要演示方法一,如下图:

情况 2:文件被设置了不可修改属性(chattr +i

现象:即使用了 sudo,依然报 Operation not permitted

原因:文件被用 chattr +i 命令设置了不可变属性,这是比文件权限更底层的限制,连 root 都无法直接修改。

解决方法

# 1. 查看文件是否被锁
lsattr /path/to/file
# 输出示例:----i--------e-- 文件名  (i 表示不可修改)

# 2. 解除锁定(需要 root)
sudo chattr -i /path/to/file

# 3. 现在可以正常修改权限了
sudo chmod 755 /path/to/file

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注