如何让 synaptic 使用默认浏览器?

如何让 synaptic 使用默认浏览器?

我的默认浏览器是 Firefox,但是当我单击 synaptic 内部的“访问主页”链接时,它会在 Chrome 中打开该链接。

我如何让它在默认浏览器中打开链接?

答案1

解决方案出现在...中描述这个帖子在线程上,synaptic 无法执行默认 Web 浏览器。输入/输出错误(请注意,我已修改链接以提供更清晰的上下文,并修复了第三个损坏的链接):

在突触中,onClick主页链接的处理程序是 RGPkgDetailsWindow::cbOpenHomepage()(参见rgpkgdetails.cc - 第 201 行)调用GetBrowserCommand()(见rgutils.cc - 第 114 行)并调用/usr/bin/xdg-open(这是一个容易修补的 shell 脚本)(参见xdg-open.in - 第 432 行

if [ -n "$BROWSER" ]; then
    open_envvar "$1"
fi

此处的修补将防止任何通过的路由xdg-open (不仅仅是突触)

if [ -n "$BROWSER" ]; then
    if [[ $EUID -eq 0 ]]; then
        open_envvar "su -c ${SUDO_USER} $1"
    else
        open_envvar "$1"
    fi
fi

这背后的原因很好地描述了这个帖子在同一线程中:

您所面临的观察之谜是由于安全设置和所涉及的不同用户造成的。

背景:启动 synaptic 时,GUI 应用程序以 root 用户身份运行。问题:单击链接打开 Web 浏览器时,synaptic 会转发调用以 root 用户身份打开 Web 浏览器。这具有某些与系统安全性和稳定性相关的隐患。

此外:Synaptic 可以通过不同的方式启动,以 root 用户身份运行,这些不同的调用确实具有不同的系统安全相关约束。(它可以通过 pkexec、gksu 或 gksudo 调用,具体取决于如何启动 synaptic 调用,例如从菜单、从 MX-updater 或其他方式。)在首选应用程序中或通过 debians 替代机制设置默认浏览器,并不能解决这些安全约束带来的问题。

摘要:目前最简单的方法是复制链接并手动打开浏览器。这需要进一步考虑,以提供一种稳定且安全的方式,从 GUI 应用程序(以用户 root 身份运行)在用户环境中调用用户 Web 浏览器。

这可能值得注意的是,该补丁可能进一步修改,根据最后的帖子

“安全”xdg-open一点的好主意,可能还值得检查所有类型的 root-app 调用,如 su-to-root、gksu、gksudo 和 pkexec,因为我们在菜单中有一个 synapic-pkexec 调用。

相关内容