![将可移动媒体(USB 驱动器)权限设置为特定组](https://linux22.com/image/121405/%E5%B0%86%E5%8F%AF%E7%A7%BB%E5%8A%A8%E5%AA%92%E4%BD%93%EF%BC%88USB%20%E9%A9%B1%E5%8A%A8%E5%99%A8%EF%BC%89%E6%9D%83%E9%99%90%E8%AE%BE%E7%BD%AE%E4%B8%BA%E7%89%B9%E5%AE%9A%E7%BB%84.png)
场景是:我的公司正试图阻止用户写入 U 盘,作为数据安全措施。但有一个问题。属于特定组的用户(假设为“usbwriters”)应该能够将数据写入可移动 USB 介质。
重要的是,现代桌面环境的用户体验不应受到影响,因此,该过程必须对用户透明。当他插入驱动器时,它必须自动安装,显示默认通知(例如在 gnome 中)等。
我目前所做的:我更改了 udev/rules.d/ 并添加了以下内容:
SUBSYSTEM=="block",ACTION=="add",ATTRS{removable},OWNER="root",GROUP="usbwriters",MODE="0464",RUN{program}="/sbin/blockdev --setro %N"
伟大的。我想这已经成功了一半。现在,任何插入 USB 驱动器的用户都会将其安装为只读。问题是我需要“usbwrites”组中的用户能够将其安装为可写(读/写)。
我尝试设置和 UDEV 规则,运行 udisks 传递 --options group=usbwriters (或 gid=XXXX),但出现错误:“GDBus.Error:org.freedesktop.UDisks2.Error.OptionNotPermission”。
然后我得出结论,我不应该这样做,必须有更好的方法。
你们能帮我吗?这不是应该很简单吗?
答案1
首先想到的是:所有 USB 块设备的所有者=root、组=usbwriters、模式=660。这可以防止不在该组中的用户直接写入块。
然后找出一些方案,让该组的用户实际上将文件系统安装在 USB 记忆棒上,无论它是 FAT 还是其他格式。例如,通过在usbmount
具有适当权限的目录中使用挂载点,或者使用任何您用来自动挂载 USB 记忆棒的内容。