为什么我需要有超级用户权限才能将共享挂载到本地挂载点?

为什么我需要有超级用户权限才能将共享挂载到本地挂载点?

好吧,标题说明了一切,但更清楚的是:

要在本地挂载点挂载共享,我需要执行以下操作

sudo mount -t cifs //location/to-share /home/<user>/some/destination -o gid=<gid>,uid=<uid>,username=<username>

相反,这样做:

mount -t cifs <all the other arguments>

将导致mount: only root can do that。为什么?为什么我需要成为超级用户?我正在向我的主目录添加一些内容。那为什么我需要超级用户?我确信有一个正当的理由,但它只是让我感到奇怪。

答案1

我认为,为什么普通用户无法在任何地方挂载某个东西的答案是,挂载可以挂载在现有目录上,从而完全隐藏现有目录。如果您对包含二进制文件的目录执行此操作,则用户将能够更改要执行的二进制文件。

现在,如果您拥有该目录(例如您的主目录),那么也许这不是什么大问题。但我认为 root 会想知道在他或她信任该挂载点的内容之前是否挂载了新驱动器。因此,您可以明确允许用户挂载到特定挂载点,但默认是禁止的。

答案2

如果您安装的内容包含setuid root程序,并且您的安装选项启用了该程序,那么您可以有效地获得 root 权限。因此,无论您在哪里安装内容,允许用户在不需要 root 权限的情况下进行安装都存在安全风险。

相关内容