unshare -r:无法连接到总线:不允许操作

unshare -r:无法连接到总线:不允许操作

当我跑步时unshare -r,我得到

Failed to connect to bus: Operation not permitted

id仍然显示我是root,

❯ id
uid=0(root) gid=0(root) groups=0(root),65534(nogroup)

这个错误/警告是什么意思?它是由什么产生的?能解决吗?

答案1

此错误可能是登录 shell 期间发生的某些事情导致的,请观察

# explicitly launch login shell
$> unshare -r /bin/bash -l
Failed to connect to bus: Operation not permitted

# run a regular shell
$> unshare -r /bin/bash

就我而言,我有一个~/.profile正在运行的,

systemctl -q is-active graphical.target

我可以证明这一点

$> unshare -r -- systemctl -q is-active graphical.target
Failed to connect to bus: Operation not permitted

Shell 启动顺序

Note~/.profile并不是您登录时 shell 读取的唯一文件。要了解更多信息,请阅读您的 shell 文档。

答案2

该消息可能是由 shell 启动文件中的某些命令生成的;从消息内容来看,很可能是与D-Bus有关的东西。

要找出具体是哪个命令,您可以使用这两个命令之一:

$ unshare -r /bin/bash -ix </dev/null 2>&1 | less
$ unshare -r /bin/bash -lix </dev/null 2>&1 | less

这些将显示 shell 启动期间执行的所有命令;前者将调试正常的交互式 shell 启动,后者将调试登录 shell。用于/搜索错误信息;它前面的一行应该包含生成它的命令。

相关内容