我被 ssh'ed 到一个本地 Centos 7 docker 容器* 并且我正在尝试运行
sudo chattr +i file1
但我收到一个错误:
chattr: Operation not permitted while setting flags on file1
这里发生了什么?它在谈论什么标志?有解决方法吗?
更改+i
为+a
也会使命令因该错误而失败,但是当我将其更改为+d
命令时成功。当我没有 ssh 进入 docker 容器时,该命令对我来说也会成功。
*我在 Windows 10 之上的 Ubuntu VirtualBox VM 主机中运行 Centos 7 docker 容器(我希望尽可能避免与 Windows 打交道)。所有这一切的最终目标是使用这些容器测试一些 Ansible 脚本。
这与功能有关:默认情况下在 docker 中禁用了
chattr
requires 。CAP_LINUX_IMMUTABLE
只需添加--cap-add LINUX_IMMUTABLE
到 docker 容器启动选项即可启用它。这是一个例子:
在这里,您可以阅读有关 docker 中的 linux 功能的更多信息。