如何为 cryptsetup 制造的设备设置所有者和权限?

如何为 cryptsetup 制造的设备设置所有者和权限?

我有一个加密的环回卷。我需要手动mountumount该卷,所以我使用cryptsetup luksOpencryptsetup luksClose

但是,在所有会话(gnome/xfce/kde/unity)下,当我调用此命令时,它会弹出 /dev/mapper 设备...

然后它允许一个用户挂载(使用密码)、访问文件并卸载该卷。

在多用户服务器中,这非常烦人(您正在处理文件,但卷正在卸载)。我希望该卷仅由 root 和所有者拥有和使用,而不是所有用户。

如何定义设备的所有权和权限?

更多信息:

  • 我已尝试过chownchmod没有任何效果。
  • Cryptsetup 没有任何选项可以让你这样做。
  • crypttab 在启动时自动挂载不需要的文件系统(只能手动挂载)

cryptsetup 放入的权限/dev/mapper/MyEncryptedVolume是所有者root:root,但lrwxrwxrwx

无论我做什么(比如 chmod)都没有任何效果。

这是一个与权限/dev/mapper/MyEncryptedVolume关联的设备( )/dev/dm-0brw-rw----

/dev/dm-0我已经用规则改变了权限udev,但没有任何变化:由于符号链接,该卷仍然显示给普通用户。

谢谢

答案1

事实是,Cryptsetup 使用 Loop 设备 / Losetup 来将回送文件挂载到/dev/mapper/MyEncryptedVolume

udev可以解决这个问题。

有两个选项:让 cryptsetup 选择循环设备或为此专用一个循环设备。

我选择了第二部分。

在这个例子中我使用/dev/loop5

  1. 99-myspecial.rules在文件夹中创建一个名为/etc/udev/rules.d/
  2. 插入此内容:

    KERNEL=="loop5" MODE="0600" OWNER="MyUser" GROUP="MyGroupUser" ENV{UDISKS_IGNORE}="1" ENV{UDISKS_PRESENTATION_HIDE}="1" ENV{ID_DRIVE_EJECTABLE}="0"

    这告诉udisk(在这种情况下,女巫才是真正的麻烦制造者)忽略该卷,隐藏图标,该卷不可弹出(也就是说它不是 cdrom)。您还可以指定只有一个用户可以访问该卷。

  3. 然后重启 udev 服务

  4. 然后我像这样链接循环设备:

    losetup /folder/myflatfile.img /dev/loop5
    

然后我根据需要使用 cryptsetup 并以循环设备作为源。

希望这能对我以外的人有所帮助。

相关内容