相关疑难解决方法(0)

如何允许非超级用户挂载任何文件系统?

是否可以允许某些特定用户(例如组成员)在 Linux 上没有超级用户权限的情况下挂载任何文件系统?

另一个问题可能是“用户可以通过哪些方式通过挂载文件系统来损害系统?”

linux mount not-root-user

60
推荐指数
4
解决办法
17万
查看次数

为什么mount需要root权限?

为什么 Linux 要求用户是根用户/使用 sudo/每个挂载特别授权才能挂载某些东西?关于是否允许用户挂载某些东西的决定似乎应该基于他们对源卷/网络共享和挂载点的访问权限。非根挂载的几个用途是将文件系统映像挂载到用户拥有的方向,并将网络共享挂载到用户拥有的目录。似乎如果用户可以控制安装方程的两边,一切都应该很酷。

访问限制说明:

我觉得我应该能够挂载用户可以访问的任何内容,否则用户将拥有该用户拥有的挂载点。

例如,在我的计算机上, /dev/sda1 由用户 root 和具有权限的组磁盘拥有brw-rw----。因此,非 root 用户不能弄乱 /dev/sda1 并且显然 mount 不应该允许他们挂载它。但是,如果用户拥有 /home/my_user/my_imagefile.img 和挂载点 /home/my_user/my_image/ 为什么他们不能在该挂载点上挂载该图像文件:

mount /home/my_user/my_imagefile.img /home/my_user/my_image/ -o loop
Run Code Online (Sandbox Code Playgroud)

正如科尔马克指出的那样,存在一个 suid 问题。因此,必须添加一些限制以防止 suid 成为问题以及潜在的其他一些问题。也许一种方法是让操作系统将所有文件视为属于进行安装的用户。但是对于简单的读/写/执行,我不明白为什么这会是一个问题。

用例:

我在实验室有一个帐户,我的家庭空间限制为 8GB。这是很小的,非常非常烦人。我想从我的个人服务器安装一个 nfs 卷,以从本质上增加我拥有的空间量。然而,因为 Linux 不允许这样的事情,我被困在 scp 文件来回保持在 8GB 限制之下。

linux mount linux-kernel

55
推荐指数
5
解决办法
2万
查看次数

安装时,什么时候应该使用循环装置?

根据以下问题:
什么是安装时的“循环设备”?
循环设备是充当基于块的设备的文件。虽然我可以从概念上理解这一点,但这与挂载任何其他文件有什么不同?例如,如果我获取 ext2 文件系统的 dd 映像然后挂载它,则不必使用循环选项 -mount -t ext2 file.dd /mnt/mount-point成功。

我什么时候应该使用 loop 选项,使用 loop 选项进行安装和不使用它进行安装有什么区别?

mount loop-device

20
推荐指数
2
解决办法
3万
查看次数

在没有 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 卡上的映像。

linux mount qt raspberry-pi

14
推荐指数
1
解决办法
9325
查看次数

选项“用户”适用于挂载,不适用于 umount

我正在试验我正在编写的程序的安装选项。我正在运行 Linux Mageia 2。

我添加了以下行 /etc/fstab

/dev/sr0 /mem  auto user,noauto, 0 0
Run Code Online (Sandbox Code Playgroud)

我删除了所有其他关于/dev/sr0哪个是我的 DVD 驱动器设备的条目。

然后,作为普通用户,我可以成功

$ mount /dev/sr0
Run Code Online (Sandbox Code Playgroud)

但随后我收到一条错误消息(“只有 root 可以...”)

$ umount /dev/sr0
Run Code Online (Sandbox Code Playgroud)

当然,设备不忙:我在mount和umount之间什么都不做。

解决后补充如果你只对解决那个问题感兴趣,你可以跳过剩下的问题,直接进入接受的答案。剩下的问题是关于我寻找解决方案或更好地记录问题的工作。但是,在问题的最后有一个事后分析部分,用我自己的评论补充了答案。

文件的所有权:

$ ls -ld /mem /dev/sr0
brw-rw----+  1 root cdrom 11, 0 mai   14 01:01 /dev/sr0
drwxr-xr-x  12 root root   4096 janv. 21 22:34 /mem/
Run Code Online (Sandbox Code Playgroud)

我是“cdrom”组的成员

使用循环设备挂载文件系统映像时,我遇到了同样的问题。

但是,当我用选项“用户”替换“用户”时,一切正常,这似乎表明系统在记住谁安装了文件系统时感到困惑。

Rahul Patil 的第一个回复并没有带来进一步的见解,因为如果我对卸载程序的理解是正确的,它本质上与我使用的相同。然而,它让我进一步思考这个过程(因此一个赞成票)并获得更多细节。Hauke Laging 的评论更支持这一点。据我了解,总而言之, umount 命令采用其参数(设备或安装点)并尝试识别适用的条目/etc/mtab,然后检查它/etc/fstab是否可以执行请求。

根据该对支架(8)用户手册安装用户的名称[应]写入mtab中,使他可以再次卸载文件系统。 …

linux mount fstab

9
推荐指数
1
解决办法
8923
查看次数