更改所有权:“不允许操作” - 即使是 root!

Dav*_*vid 57 permissions chown

我正在尝试帮助用户解决可启动 USB 驱动器的问题,但似乎有一个文件的所有权无法编辑。我认为有可能:

sudo chown user:user ldlinux.sys
Run Code Online (Sandbox Code Playgroud)

但是,当执行该命令时,终端会出现此错误:

Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我与用户的扩展聊天可以在这里找到。

kos*_*kos 58

可能该文件在其扩展属性中设置了不可变标志:

user@user-X550CL ~/tmp % touch immutable
user@user-X550CL ~/tmp % sudo chown root:root immutable
[sudo] password for user:
user@user-X550CL ~/tmp % sudo chattr +i immutable
user@user-X550CL ~/tmp % lsattr immutable
----i--------e-- immutable
user@user-X550CL ~/tmp % sudo chown user:user immutable
chown: changing ownership of 'immutable': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

要解决这个问题,只需运行sudo chattr -i file

user@user-X550CL ~/tmp % sudo chattr -i immutable
user@user-X550CL ~/tmp % lsattr immutable
-------------e-- immutable
user@user-X550CL ~/tmp % sudo chown user:user immutable
user@user-X550CL ~/tmp % 
Run Code Online (Sandbox Code Playgroud)

  • 我得到:chattr:在读取 64GB 上的标志时,设备的 ioctl 不合适,同时在位于 /media/ 的 USB 拇指驱动器上尝试此操作 (33认同)
  • +1,但对于某些文件(不仅仅是符号链接)失败,甚至以 root 运行 `sudo chattr -i` 返回 `chattr:读取标志时不支持操作。` (7认同)
  • 感谢您的解释。我一次又一次地忘记它。;) (3认同)
  • 对我来说,“a”(仅附加)标志是问题所在。`sudo chattr -a fileName` 解决了这个问题。 (3认同)