当我跑步时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。用于/
搜索错误信息;它前面的一行应该包含生成它的命令。