erc*_*rch 12 automounting mount fuse
如果我错了,请纠正我:为了在我的计算机上工作,使用名为 Debian 的 GNU/Linux 发行版,我知道两种输入命令、启动应用程序、打开文件等的方法:
有一个名为“窗口管理器”的东西。当我使用 GNU/Linux 时,我确实在X-Window 系统上工作[据我所知]。
原帖
情况:我禁用/etc/fstab了 USB 记忆棒的自动挂载[例如/dev/sdb1]。挂载需要是root,或者至少是命令行上的一个sudo条目,而不是窗口管理器 (!) 中的一个条目。我的意思不是automount,我的意思是在窗口管理器中“单击符号”可以毫无问题地打开 GUI 上的设备,在 CLI 上必须是 root 用户。
问题:在 GUI 中安装如何“在幕后”工作?是否有config用于窗口管理器的文件,还是必须单独设置?
我确实理解和使用mount命令,我想了解如何阅读和配置/etc/fstab并知道在哪里查看条目的/etc/mtab含义和含义。
这取决于您的窗口环境(GNOME/KDE/等),但例如,在 GNOME 中,您会看到运行的守护进程名为gvfs-*-volume-monitor. 这些守护进程负责在运行桌面环境时挂载设备,它们与 无关/etc/fstab,完全独立运行。
至于配置文件,有一些与此相关的文件位于运行 DE 的用户主目录中$HOME/.local/share/gvfs-metadata。
这个 U&L 问答题为:什么是 gvfs,为什么我要在我的系统上使用它?,试图解释 GVFS 是什么。它可以很好地解释它。但我认为您真正要问的问题更多地由题为“自动挂载 USB 磁盘(如何工作) ”的 U&L 问答得到解决。
简单的答案是他们作弊。他们不使用fstab. 他们通常使用udev钩子来捕获插入事件,将磁盘手动挂载为root,这可能会被传递dbus到通知您的文件管理器您有一个新磁盘,或者他们可能使用suid实用程序而不是dbus卸载。不幸的是没有标准的配置选项,而且由于桌面运动相信隐藏复杂性,他们没有在用户文档中记录这一点,只在开发者文档中记录,并且他们假设一个用户系统,所以 USB 驱动器只适用于第一个登录到 X 服务器的用户。
PolicyKit(或 Polkit)是一个应用程序级工具包,用于定义和处理允许非特权进程与特权进程对话的策略。
它是一个框架,用于集中决策过程,以授予非特权(桌面)应用程序访问特权操作(如调用 Mount() 方法)的权限。
身份验证代理用于使会话的用户证明会话的用户确实是用户(通过以用户身份进行身份验证)或管理用户(以管理员身份进行身份验证)。
GVFS是一个虚拟文件系统,它允许以用户身份挂载本地和远程文件系统以及垃圾支持。还有 FUSE 支持,允许不使用 GIO 的应用程序访问 GVFS 文件系统,但大多数 DE 也通过 Policykit 对其他事情进行身份验证,例如休眠和关闭计算机以及 NetworkManager,因此它们不需要使用保险丝。
它由两部分组成:
需要安装 gvfs 包以及用于 polkit 规则的 polkit-gnome。确保已安装并自动启动图形身份验证代理。
每个发行版用于管理权限的配置文件必须不同。Arch Wiki 告诉您在/usr/share/polkit-1/rules.d/. 在 Debian 中,它们位于/etc/polkit-1/.
来源:Debian Policykit || Arch Wiki 上的 Polkit || Arch Wiki 上的 GVFS || GNOME Wiki 上的 GVFS!
这是我对这种情况的理解,但我不是专家,所以它的技术性低于其他答案。这是我使用这些系统多年后的理解,我没有详细研究它们。
这里有三个主要玩家,他们管理坐骑:
FUSE:这是一切的中心,如其维基百科页面所述:
用户空间文件系统 (FUSE) 是一种用于类 Unix 计算机操作系统的操作系统机制,它允许非特权用户在不编辑内核代码的情况下创建自己的文件系统。这是通过在用户空间中运行文件系统代码来实现的,而 FUSE 模块仅提供到实际内核接口的“桥梁”。
所以,基本上,这就是允许非特权用户挂载文件系统的原因。
gvfs:在 Gnome 桌面环境系列(包括 Gnome、Mate、Cinnamon)中,这是(除其他外)一个会自动安装新连接驱动器的守护进程。它是通过FUSE 实现的。我相信(但很可能是错误的)KDE 系列的等价物称为KIO
的主要过程gvfs是(取自man gvfs):
udev:这是一个检测新设备并允许您在连接时运行脚本/命令的系统。例如,它是udev检测新屏幕并可以在其上镜像您的桌面:
udev 是 Linux 内核的设备管理器。首先,它管理 /dev 中的设备节点。它是 devfs 和 hotplug 的继承者,这意味着它在添加/删除设备(包括固件加载)时处理 /dev 目录和所有用户空间操作。
具体来说,gvfs似乎可以通过gvfs-udisks2-volume-monitor它是基于 udisks 的音量监视器。udisks然而,它本身依赖于udev(参见man 7 udisks)。
所以,基本上(阅读“可怕的简化”)会发生什么,当你连接你的驱动器时,udev检测到它并提醒gvfs守护进程,然后守护进程将它安装为一个 FUSE 设备。
FUSE 并且udev对于所有桌面环境都是一样的,改变的是 DE 守护程序,它监视udev和安装驱动器作为 FUSE 文件系统。