Tripwire 数据库更新时出现问题:未指定协议/QXcbConnection:无法连接到显示:0/交互式更新失败

Tripwire 数据库更新时出现问题:未指定协议/QXcbConnection:无法连接到显示:0/交互式更新失败

./tripwire --update --twrfile ./report/name.twr所以我尝试通过所述方式对 tripwire 数据库进行更新这里作为我计算机上的 root,但我收到这些错误(请注意 --init 和 --check 工作正常):

未指定协议
QXcbConnection: 无法连接以显示:0
中止
交互式更新失败。
错误:无法启动编辑器。

我正在使用 KDE 运行 Debian 9.1。我该如何解决这个问题?

答案1

很简单,你没有DISPLAY=:0设置环境变量。

  1. 你可以运行:

    export DISPLAY=:0; ./tripwire --update --twrfile ./report/name.twr
    
  2. 或者您可以从终端根会话注销并启动新的会话而不传递 - 参数,这将使您继承当前会话的环境变量(包括该DISPLAY变量)。所以按ctrl+d然后运行su。输入您的密码,然后您可以使用以下命令检查您的env环境:grepDISPLAY

    env | grep DISPLAY
    
  3. 您可以将默认编辑器更改为基于控制台的编辑器,例如nanovim。您应该按照EDITORTripwire 配置文件中提到的字段进行更改。

    Tripwire 将使用 Tripwire 配置文件的 EDITOR 行上指定的默认文本编辑器显示报告文件

选择您想要的方式。这三种方式中的任何一种都将允许您打开基于 GUI 的应用程序或将 GUI 文本编辑器设置更改为基于控制台的设置。

第一个和第二个最简单的假设是您想要使用图形编辑器查看 Tripwire 报告的内容。

答案2

较新的系统在设计上不允许图形应用程序作为 root(这是 Wayland 的事情)。解决方法:

$ xhost si:localuser:root

$ sudo -i
$ ...your-graphical-app...

恢复默认权限:

$ xhost -si:localuser:root

相关内容