如何使普通用户可写环回设备?

如何使普通用户可写环回设备?

我设置了一个环回设备如下本指南

设备正常,但只能 root 写入。我搜索了解决方案并找到了一些答案,例如使用等fusermountfstab例如这个

我想具体了解一下:

  1. 需要 root 才能创造该设备是不是有问题,但是挂载后对于普通用户必须是可写的。
  2. 我希望避免使用/etc/fstab,因为我需要的只是自发地执行,或者在 shellscript 中执行,其中我既没有固定的环回映像,也没有固定的安装点。

答案1

我设置了一个环回设备

除非您使用非常古老的内核,否则这不再是必要的 - 正常的安装过程会隐式生成循环设备。

设备正常,但只能 root 写入。

循环设备上的权限不会影响已安装文件系统上的权限。它也不影响谁可以实际挂载文件。

需要 root 来创建设备不是问题,但安装后对于普通用户必须是可写的。

文件系统权限源自您挂载的实际数据。某些文件系统(例如 FAT)具有可以附加 UNIX 权限的选项。其他文件系统(例如 ext)则不然。

我想写入设备中包含的文件系统

那么你将无法通过使用循环设备来解决这个问题。 (另外,请阅读XY问题。你的 X 是“所有用户应该能够从文件系统读取”,你的 Y 是“我认为我需要一个循环设备”,毫不奇怪,这不起作用,你只询问 Y,而不是开始询问 X) 。

正如注释中所写,您可以chown/chmod(以 root 身份)在安装后让所有用户读取它,从而更改文件系统的内容。这是最简单的解决方案。

对于“我想挂载 ext4 文件系统,但透明地覆盖挂载上的所有内容的权限”没有简单的解决方案。至少据我所知没有。


man mount

循环装置

另一种可能的类型是通过环装置安装。 [...]如果没有提到明确的循环设备(但只给出了选项“-o循环”),那么mount将尝试找到一些未使用的循环设备并使用该设备[...]

挂载命令自动创建循环设备如果未指定文件系统类型或 libblkid 已知文件系统,则来自常规文件,例如:

mount /tmp/disk.img /mnt

mount -t ext4 /tmp/disk.img /mnt

这种类型的挂载知道三个选项,即loopoffsetsizelimit,它们实际上是 losetup(8) 的选项。
(除了特定于文件系统类型的选项之外,还可以使用这些选项。)

相关内容