在我的 Ubuntu 系统上,我注意到某些文件管理器在打开时可以挂载通过我的 USB 端口之一(作为非 root)连接的任何驱动器。为了防止这种情况发生,我/etc/fstab
这样配置:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/vgubuntu-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/nvme0n1p3 during installation
UUID=485794d0-6773-4136-9df9-c8f97fc3c3bc /boot ext4 defaults 0 2
# /boot/efi was on /dev/nvme0n1p2 during installation
UUID=5E62-20EC /boot/efi vfat umask=0077 0 1
/dev/mapper/vgubuntu-swap_1 none swap sw 0 0
#/media/j/sandisk-32GB is my primary USB drive for backups
PARTUUID=d199a40a-b5cc-724b-b70b-1b90e4274ea9 /media/user_xyz/sandisk-32GB ext4 defaults,nofail 0 3
1. 如何防止非用户自动挂载或挂载my 中未root
指定的驱动器/分区?/etc/fstab
2.是否可以进一步限制root
安装白名单以外的驱动器?例如,root
尝试执行mount PARTUUID=this-partition-is-not-whitelisted /media/user_xyz/not-whitelisted
并失败,除非他们更改我尝试设置的配置。
PS这个特殊的PARTUUID
只是用来传达我的意思 - 我知道它的格式不正确,因此root
会导致安装失败。我使用的是 Ubuntu 22.04 LTS。
文件管理器的挂载/自动挂载确实是通过以下方式完成的
udisks
,但是,这一切都经过一个名为的授权机制polkit
,该机制定义了操作和规则(谁可以做什么......)。人们可以通过名为 的配置文件覆盖默认设置rules
。在这种特殊情况下,该操作称为
您可以通过检查此操作的默认设置
它返回类似这样的内容:
正如您在最后一行看到的,用户
active
挂载文件系统的隐式权限设置为yes
。您可以通过编写新规则来覆盖它。这不会对您的 中列出的内容产生任何影响/etc/fstab
。创建文件包含以下内容:
当您重新启动系统时,任何用户都不应能够安装/自动安装驱动器,除非他们具有管理员权限:系统将提示他们输入管理员密码。如果您也想禁用该提示,请替换
AUTH_ADMIN
为NO
。问题1)的解决方案可以在这里找到:https://askubuntu.com/questions/1062719/how-do-i-disable-the-auto-mounting-of-internal-drives-in-ubuntu-or-kubuntu- 18-04
基本上,关闭 udiks2。
然后测试,并永久执行:
这将阻止“普通”用户自动安装驱动器...您还应该确保他们不在 adm 或 sudo 组中,因为这样他们仍然可以安装驱动器。
正如 Marcus Müller 在评论中指出的那样,我认为2)的解决方案并不简单。我无法立即想出一个好的答案(例如,如果我是root,我如何防止自己安装任何驱动器?)。root 必须能够挂载驱动器,这就是内核启动、加载 RAM 磁盘等的方式。