当我插入 USB 驱动器时,它会自动安装到/run/media/user/fslabel
.我猜这是由一些 udev/dbus/thunar/nautilus/gvfs 或其他系统完成的,我发现这很方便,并且不想恢复为由 root 手动安装。但是,我对默认安装选项有一个问题:安装 vfat 驱动器后,所有常规文件上都设置了可执行标志。这是一个麻烦和安全问题,我希望禁用它。
如何设置系统范围的安装选项,例如使用noexec
标志全部 vfat
ext4
分区并禁用用户空间程序/守护进程安装分区?
几年前,我在不同的系统上尝试了一些非常耗时的操作,例如编辑一些udev
规则dbus
(显然不是设计为手动编辑的文件),由于缺乏适当的文档以及发行版之间的巨大差异,这是一项巨大的努力。这是预期的且唯一的方法吗?如果是这样,有人可以告诉我在哪里改变什么吗?
我正在使用 Arch Linux、CentOS 和 openSUSE 以及 XFCE 桌面。自动挂载可以由 nautilus、thunar 或 dolphin 之一执行,在后台运行(或者可能是由这些启动的服务?!)。我不确定,因为它发生在后台。
答案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"
(如果您的发行版使用 udisks1,请替换UDISKS_IGNORE
为)。UDISKS_PRESENTATION_HIDE
1:参见免费桌面机器学习提议的补丁(以及长时间的讨论)。