在 Linux 上没有提升权限的情况下将文件系统挂载到本地目录的解决方法

Chr*_*tti 6 linux filesystems permissions mount

我有一个位于文件中的 ext3 文件系统,我想将它挂载到本地目录,而无需 sudo 或任何提升的权限。为什么?我正在创建一个用于自动化测试的小型文件系统。自动化测试在我无法控制的机器上运行,因此将 mount 添加到 sudoers 存在一些障碍。

这是我创建文件系统的方式:

$ dd if=/dev/zero of=./50MB_partition count=102400
$ mkfs.ext3 -F 50MB_partition
Run Code Online (Sandbox Code Playgroud)

如果我获得许可,我现在可以像这样安装它:

$ mkdir small_partition
$ sudo mount 50MB_partition ./small_partition
Run Code Online (Sandbox Code Playgroud)

看来,因为我拥有文件系统和挂载点,所以允许我挂载它没有相关的安全风险。我明白是什么限制了我在没有 sudo 的情况下调用 mount;那里不需要解释。我想知道的是,是否有一种解决方法可以让我将文件系统用于测试目的?

MrT*_*tle 3

mount 需要 mount() [在 sys/mount.h 中定义],而 mount() 又需要 CAP_SYS_ADMIN,因此如果没有 fstab 条目或 sudo,则无法使用 mount()。

可能想研究一下fuse(用户空间中的文件系统)[ http://fuse.sourceforge.net/ ]