使用 wayland 以 root 身份启动 nautilus

使用 wayland 以 root 身份启动 nautilus

过去,当 X11 作为显示的默认服务器时,可以以 root 身份启动 nautilus,然后导航到需要的地方。

自从 wayland 发布以来,这种行为已经发生了改变,至少在我的计算机上是这样。

这就是发生的事情

$ sudo nautilus
[sudo] Mot de passe de mh-cbon : 

** (org.gnome.Nautilus:24429): WARNING **: 11:18:08.420:
Error on getting connection: Failed to load SPARQL backend:
Error spawning command line ?dbus-launch 
--autolaunch=8220b0ff33294af5b85d94866520933e 
--binary-syntax --close-stderr?: 
Child process exited with code 1
No protocol specified
Unable to init server: Impossible de se connecter : Connection refused

(org.gnome.Nautilus:24429): Gtk-WARNING **: 
11:18:08.471: cannot open display: :0

当命令行不提供自动完成功能时,我发现使用 nautilus 浏览我的文件非常方便,因为我的用户无权访问文件系统的那部分。

我可以更改设置中的某些设置来实现这一点而不必启动旧的 X11 会话吗?

答案1

现在已经可以在不使用“sudo”的情况下浏览文件。告诉 Nautilus 导航到admin:///这是一个 GVFS 层,允许以 root 权限访问本地文件。

要在 CLI 中获得自动完成功能,只需sudo -s以 root 身份启动 shell。


这并非完全是与 Wayland 相关的更改;尽管 Wayland 显示服务器不允许除您本人以外的其他用户使用,但您仍有一个 X11 服务器在运行 (Xwayland),程序可以随时恢复到该服务器。主要区别在于如何配置对该 X 服务器的访问控制。

以前使用 Xorg 时,显示管理器会将您的 UID 添加到 X 服务器的访问列表中(作为 中的“localuser”条目xhost),并会创建一个包含访问令牌的“Xauthority”文件。任何与访问列表不匹配的客户端都可以读取访问令牌,并sudo会保留 $XAUTHORITY,这样即使 root 的主目录在其他地方,程序仍然能够找到令牌。

当 GNOME Shell 启动 Xwayland 时,它不会创建任何访问令牌,而完全依赖于“xhost”访问列表。由于在该列表中但不在该列表中,因此以 root 身份启动的程序无法访问 X11。SI:localuser:youSI:localuser:root

如果您使用xhost将 root 添加到 Xwayland 访问列表,Nautilus 将通过“sudo”启动,尽管它将通过 X11 而不是 Wayland 来启动。它是否能可靠地工作是另一个问题。

相关内容