我在尝试在我的 rkt 容器中以根身份执行命令时遇到了一些问题。
我将 rkt 引擎作为 sudo 运行。在启动的容器内,我也以根身份登录。但似乎我内心不是一个"真正的"根。
例如,当我尝试在我拥有的已启动进程上运行"chrt"命令时,我得到以下答案:
[root@rkt-b1e45e35-f3e7-4cc2-88ea-58d06809dd5d /]# chrt -p -f 99 25
Unable to change scheduling policy!
either run as root or join realtime group**
另一个示例,当我尝试以我在容器中创建的另一个用户身份登录时,出现以下错误消息:
[root@rkt-b1e45e35-f3e7-4cc2-88ea-58d06809dd5d /]# su toto
Bad system call
(注意:当我尝试启动"sudo"命令时,我有相同的消息)。
我还尝试将 toto 或 root 添加到"根"用户组或"实时"用户组,但它仍然不起作用。
另一个富有表现力的例子,当我尝试在 root 拥有的文件上应用(作为根)chmod +w
时,具有以下确认:rw-r--r--
,我有一个拒绝访问的消息......
有关信息,我的 rkt 映像上的rkt image cat manifest xxx
命令给出了以下输出:
{ "acKind": "ImageManifest", "acVersion": "0.6.1", "名称": "xxxxx "标签":[ { "名称": "版本", "值":"最新" }, { "名称": "拱门", "值": "AMD64" }, { "名称": "操作系统", "值": "Linux" } ], "应用程序":{ "执行":[ "/bin/bash" ], "用户": "根", "组": "根", "工作目录": "/", "环境":[ { "名称": "路径", "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" } ] } }
你知道我的问题的起源吗?
我找到了解决方案:我只需要在rkt运行命令中添加更多"--caps-retain"参数。(默认情况下,本地伪根用户有很强的限制)