为什么 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 限制之下。