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。有一个非常酷的示例脚本,您可以根据需要用作参考。