Nautilus 特殊 URI

Nautilus 特殊 URI

Ubuntu 中定义的 Nautilus 中使用的这些特殊 URI 在哪里?

recent:///
trash:///
x-nautilus-desktop:///
computer:///
burn:///

通过在路径栏中输入它们,可以立即打开 Nautilus 中的特殊位置。

为什么当我以 root 身份打开 Nautilus 时这些不起作用(这是我第一次看到 root 没有执行某些操作的权限)?

答案1

编辑经过更多挖掘后,我发现您可以以 root 身份启动 nautilus 并使用 dbus 访问特殊的 URI。命令是

sudo dbus-launch nautilus

然后 URI 就全部可用了。老实说,我并不是 100% 知道为什么这样做有效,但我在下面找到的一些原始信息可能仍然有帮助。


这些 URI 存在的原因是 Nautilus 使用名为 Gnome 虚拟文件系统 (gvfs) 的虚拟文件系统,该系统构建在另一个名为 FUSE 的虚拟文件系统之上。具体来说,这些 URI 在名为 gvfsd-* 的目录中配置/usr/lib/gvfs/。这些是二进制文件,因此请勿尝试编辑它们。

当您使用 Nautilus 挂载 Samba 共享时,它会使用 gvfsd-mount 命令(存储在/usr/bin)来挂载您指定的共享。然后,共享将安装在/run/user/<UID>/gvfs/您的用户 ID 所在的位置(对于单用户系统,通常为 1000)。

至于 root 能够使用这些 URI,Ubuntu(我假设其他发行版)出于安全原因配置了 fusion,以便 root 无法使用虚拟文件系统。您会注意到该/run/user文件夹​​中没有 root 用户的 0 目录。/etc/fuse.conf默认情况下的文件未配置为允许 root 用户访问。这意味着,如果您的用户安装了共享,即使是 root 用户也无法在未配置 Fuse 允许的情况下查看该共享。

我实际上还没有测试过给予 Fuse 文件系统或特殊 URI 的 root 访问权限,但您可能会幸运地将其配置为此链接中描述或通读保险丝手册页

对于 RTFM 的回答,我深表歉意,但我找不到明确的解决方案,这取决于您使用的 Ubuntu 版本,因为某些目录/命令在最近版本中发生了更改。

答案2

不多,但这里有一些适合每个人的东西:

在终端或按 Alt + F2 :

gksudo dbus-launch nautilus computer:///

在根系统上,您不需要“gksudo”或“dbus-launch”

一些例子:

computer:/// - objects for each mounted device, plus the network
network:/// - available networks to browse
burn:/// - a virtual folder for burning data CDs/DVDs
smb:/// - available windows/samba network resources
x-nautilus-desktop:/// - desktop objects and icons
file:/// - local files
trash:/// - local trash directory
themes:/// - displays all the themes that are available in the GNOME Desktop
fonts:/// - shows fonts
recent:/// - shows recent files

另一方面,本站点展示了如何为您的脚本或程序创建可在 Firefox 和 gnome 上运行的 URI。有一个非常酷的示例脚本,您可以根据需要用作参考。

将新的 URI 方案处理程序集成到 Gnome 和 Firefox

相关内容