![Tripwire 数据库更新时出现问题:未指定协议/QXcbConnection:无法连接到显示:0/交互式更新失败](https://linux22.com/image/115648/Tripwire%20%E6%95%B0%E6%8D%AE%E5%BA%93%E6%9B%B4%E6%96%B0%E6%97%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98%EF%BC%9A%E6%9C%AA%E6%8C%87%E5%AE%9A%E5%8D%8F%E8%AE%AE%2FQXcbConnection%EF%BC%9A%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5%E5%88%B0%E6%98%BE%E7%A4%BA%EF%BC%9A0%2F%E4%BA%A4%E4%BA%92%E5%BC%8F%E6%9B%B4%E6%96%B0%E5%A4%B1%E8%B4%A5.png)
./tripwire --update --twrfile ./report/name.twr
所以我尝试通过所述方式对 tripwire 数据库进行更新这里作为我计算机上的 root,但我收到这些错误(请注意 --init 和 --check 工作正常):
未指定协议
QXcbConnection: 无法连接以显示:0
中止
交互式更新失败。
错误:无法启动编辑器。
我正在使用 KDE 运行 Debian 9.1。我该如何解决这个问题?
答案1
很简单,你没有DISPLAY=:0
设置环境变量。
你可以运行:
export DISPLAY=:0; ./tripwire --update --twrfile ./report/name.twr
或者您可以从终端根会话注销并启动新的会话而不传递 - 参数,这将使您继承当前会话的环境变量(包括该
DISPLAY
变量)。所以按ctrl+d然后运行su
。输入您的密码,然后您可以使用以下命令检查您的env
环境:grep
DISPLAY
env | grep DISPLAY
您可以将默认编辑器更改为基于控制台的编辑器,例如
nano
或vim
。您应该按照EDITOR
Tripwire 配置文件中提到的字段进行更改。Tripwire 将使用 Tripwire 配置文件的 EDITOR 行上指定的默认文本编辑器显示报告文件
选择您想要的方式。这三种方式中的任何一种都将允许您打开基于 GUI 的应用程序或将 GUI 文本编辑器设置更改为基于控制台的设置。
第一个和第二个最简单的假设是您想要使用图形编辑器查看 Tripwire 报告的内容。
答案2
较新的系统在设计上不允许图形应用程序作为 root(这是 Wayland 的事情)。解决方法:
$ xhost si:localuser:root
$ sudo -i
$ ...your-graphical-app...
恢复默认权限:
$ xhost -si:localuser:root