自动挂载usb的最后一步操作(mount)是由udisks2.service操作的。对于总线等的管理是由udev.service操作的。最直接的,关闭udisks2.service就能禁止止系统自动mount USB存储介质。
# 立即关闭
systemctl stop udisks2
# 禁用开机启动
systemctl disable udisks2
关闭之后可以使用手动的方法进行挂载。如,使用只读模式,那就:
mount -o ro /dev/sdb1 /home/Mr_X/my_usb
但是使用中发现该service还是会自动被系统启动起来:
# 查看所有服务的状态
systemctl list-unit-files | grep udisks2
但是,可以通过修改udisks2的配置文件,使得默认只以可读模式挂载USB存储介质。配置文件位置可以通过 man udisks.8 查看,Ubuntu 22.04位于/etc/udisks2/中。提供了一个mount_options.conf 的模板文件,编辑之,可以严格地将默认行为修改为如下:
defaults=ro, noexec, noauto, nodev, nosuid, noatime
allow=ro, noexec, noauto, nodev, nosuid, noatiome
更多挂载选项参考mount命令的-o选项集合,参考《Linux mount命令详解:挂载Linux系统外的文件