如何更改可移动 vfat/fat32 驱动器/分区的自动安装以使用“noexec”?

Ned*_*d64 6 mount udisks vfat

当我插入 USB 驱动器时,它会自动安装在/run/media/user/fslabel. 这是完成的,我猜是由一些 udev/dbus/thunar/nautilus/gvfs 或其他系统完成的,我觉得这很方便,不想恢复到由 root 手动安装。但是,我的默认挂载选项有问题:挂载了 vfat 驱动器,以便在所有常规文件上设置可执行标志。这是一个麻烦和安全问题,我希望禁用它。

如何设置系统范围的挂载选项,例如noexec所有 vfat分区使用标志并禁用ext4用户空间程序/守护程序挂载分区?

几年前,我在不同的系统上尝试了一些非常耗时的事情,比如编辑一些udevdbus规则(显然不是设计为手动编辑的文件),由于缺乏适当的文档和发行版之间的巨大差异,这是一项巨大的努力. 这是预期的和唯一的方法吗?如果是这样,有人可以告诉我要在哪里更改吗?

我在 XFCE 桌面上使用 Arch Linux、CentOS 和 openSUSE。自动挂载可能由 nautilus、thunar 或 dolphin 中的一个执行,在后台运行(或者可能是由这些启动的服务?!)。我不确定,因为它发生在后台。

don*_*sti 1

外部媒体/驱动器安装由udisks2大多数现代发行版处理。我认为没有任何简单的方法可以更改默认安装选项,因为它们是硬编码的(参见FSMountOptions参考资料udiskslinuxfilesystem.c),也就是说,它们不可配置(至少还不是1)。您的选择非常有限:卸载分区并使用不同的安装选项重新安装它(除非您愿意修补源代码或编写自己的自动安装工具)。

至于你的另一个问题:

我认为,从规则的外观来看,也许可以禁止按类型安装?!当我插入 USB (3.0) 拇指驱动器或 HDD 时,所有 ext[34] 分区都会被安装(我希望它们没有),并且用户会收到任何 LUKS 分区解锁的图形提示。我希望禁用两者。用户可能拥有 FAT 驱动器,但其他驱动器只能由 root 挂载。

您可以使用udev规则来忽略除 USB 拇指驱动器分区之外的所有分区vfat。创建一个新的规则文件,例如/usr/lib/udev/rules.d/90-ignore-nonvfat.rules包含以下内容:

SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="usb", ENV{ID_FS_TYPE}!="vfat", ENV{UDISKS_IGNORE}="1"
Run Code Online (Sandbox Code Playgroud)

(如果您的发行版使用 udisks1,请替换UDISKS_IGNOREUDISKS_PRESENTATION_HIDE)。

1:请参阅FreeDesktop ML以获取建议的补丁(以及长时间的讨论)。