无需 sudo/root 即可挂载和修改环回文件,是否可以?

无需 sudo/root 即可挂载和修改环回文件,是否可以?

我正在尝试将教程改编成易于使用的脚本 http://qt-project.org/wiki/RaspberryPi_Beginners_guide

我正在尝试尽可能减少对 sudo/root 的需求(最好仅用于最后dd一步)。

我的问题是:

  1. 我可以以任何方式在没有 sudo/root 权限的情况下挂载 ext4 文件系统吗?

  2. 我可以以某种方式安装它,以便以某种方式忽略 FS 上的用户/组(这样我就可以在没有 sudo 的情况下运行 make install)吗?

文件系统当前从文件的偏移量(即-o loop,offset=62914560)环回安装。

该文件是将复制到用于启动 Raspberry Pi 的 SD 卡上的映像。

答案1

你要libguestfs。您可以通过以下方式使用它客鱼或者盖斯特蒙特,或者直接通过其使用该库C接口或任何许多语言绑定,例如Python

答案2

如果您的系统使用 udisk(并且 polkit 允许非 root 用户挂载 udisk),您可以使用以下命令挂载该文件:

udisksctl loop-setup -f file.img -o <OFFSET>

<OFFSET>是一个整数值,表示启动环回安装的字节数。-r如果您想以只读方式安装,可以使用该开关。

答案3

关于这一点,我想到了以下内容。

/etc/fstab您可以为要作为具有普通权限的用户安装的设备添加一行。

示例行如下所示

/dev/mydevice    /mnt/directory    auto    rw,user    0    0

通过这条线,普通用户可以安装mydevice/mnt/directory设备,并且还可以读取和写入设备。你只需要调用

mount mydevice

或者

mount /mnt/directory

要获得对语法的出色解释,/etc/fstab您应该查看

www.tuxfiles.org/linuxhelp/fstab.html


由于这raspberry是 USB 设备,您可以通过udev添加特定的 udev 规则(自动挂载等)更优雅地实现此目的。在这种情况下,如果您想要进一步解释,请让我现在就解释。

答案4

您需要超级用户权限才能安装。但这些可以通过 setuid 辅助命令(如 sudo、mount 或 fusionmount)提供给您。在/etc/fstab中,管理员可以授予一些普通用户挂载特定的FS。可以允许某些用户通过 fusion 挂载文件系统(例如,如果 FS 是 ext,则可以使用 fusionext.

或者,也许您可​​以通过使用可以在文件系统内写入的应用程序而无需安装。例如,debugfs 可以写入 ext fs 映像(创建目录、文件、更改所有权...),debugfs 可以轻松编写脚本。您还可以使用 qemu 运行 Linux 内核和相关命令来写入该 FS。

相关内容