过去,当 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:you
SI:localuser:root
如果您使用xhost
将 root 添加到 Xwayland 访问列表,Nautilus 将通过“sudo”启动,尽管它将通过 X11 而不是 Wayland 来启动。它是否能可靠地工作是另一个问题。