我想在终端和 GUI 中隐藏 Ubuntu 中的 Windows 驱动器,以便 root 无法访问它来修改 Windows 磁盘(/dev/sda1/
)。
答案1
不可能。root 用户按定义就是无所不能的。这包括读取和写入所有连接的存储设备的能力。
你能做的最好的事情就是加密 Windows 分区,这样可以防止没有有效密钥的人
- 理解该分区上的信息并
- 操纵其内容而不被发现。
你可能想要的是权限分离,其中一个或多个用户没有超级用户权限但仅是其中的一个子集。
答案2
您可以卸载 Windows 分区,并将其从启动时自动安装的分区列表中删除。
我引用了以下部分https://help.ubuntu.com/community/MountingWindowsPartitions:
选项 2 - 确保 Ubuntu 不会挂载该分区,并且禁用文件管理器的图形挂载。例如,您可能希望确保恢复和系统分区永远不会被无意挂载,也不会出现在文件管理器中。在这种情况下,您需要在 /mnt 而不是 /media 中创建挂载点。使用您的 UUID 和挂载点修改以下行(在 /etc/fstab 中):
UUID=519CB82E5888AD0F /mnt/Data ntfs noauto,umask=222 0 0
注意:使用这些安装选项,分区不会出现在 Nautilus(Ubuntu 文件管理器)左侧窗格中的设备列表中,但它仍会出现在 Dolphin(Kubuntu 文件管理器)中。单击 Dolphin 中的分区会导致显示错误消息。此解决方案在 Dolphin 中不如在 Nautilus 中那么优雅,但达到了预期的效果 - 无法安装分区。
另一种方法是使用以下命令设置 NTFS/fat 分区的隐藏标志分区。
注意:这是假设您只是想通过“隐藏”来防止对 Windows 驱动器的随意访问,但阻止 root 用户的严格访问是不可能的。
答案3
如果要完全隐藏驱动器,可以设置udev规则。例如,如果您的 Windows 分区位于/dev/sda2
,则可以将以下内容添加到/etc/udev/rules.d/99-hide-disks.rules
(您可能需要创建文件)。
KERNEL=="sda2", ENV{UDISKS_IGNORE}="1"
此后,只需重新启动机器即可。