对非 root 用户使用“mount -o”

对非 root 用户使用“mount -o”

我有一个安装命令,它使用-t cifs将远程文件夹(例如\\remote_ip_address\folder)安装到本地文件夹(例如/srv/mount_destination)。

所以整个命令如下所示:

mount -t cifs -o ro,username=UN,password=PWD '\\remote_ip_address\folder' /srv/mount_destination

但是我收到以下错误:

mount: only root can use "--options" option

我的问题是这个命令必须由 运行user,但是用户没有也不可能有 sudo 权限,所以使用 sudo 命令是不可能的。另一个障碍是远程文件夹必须安装在 中的文件夹下/srv,因此使用其他文件夹/media也不是一个选择。

我尝试添加以下行/etc/fstab,重新启动系统,但没有任何积极效果:

//remote_ip_address/folder /srv/mount_destination cifs noauto,user 0 0

我是否做错了什么或者我还缺少什么?

答案1

鉴于您添加到的行/etc/fstab,以下内容应该有效:

USER=UN mount /srv/mount_destination

(替换UN为适当的值)。这将使用 中指定的文件系统、目标和选项/etc/fstab、存储在环境变量中的用户名USER,并提示输入密码。如果您需要该ro选项,也应该将其添加到/etc/fstab( noauto,user,ro)。

限制-o(只有 root 可以指定它)是为了保护系统:管理员可以设置任何必要的选项,直接使用-o或使用/etc/fstab;用户只能导致用户可控的文件系统被挂载或卸载,而无需指定选项,因为文件系统选项允许许多不利的情况。因此,某些文件系统支持设置某些选项的其他方式,例如USER上面使用 CIFS 的环境变量。

mount.cifs(由 所使用mount -t cifs)支持许多其他可能相关的设置。该multiuser选项特别有用。

答案2

  1. 使用sudoer:

A。编辑你的/etc/fstab文件:

vi /etc/fstab
# To allow <add_your_UN> user to access msshare.
//remote_ip_address/folder /srv/mount_destination cifs vers=3.0,username=<add_your_UN>,noauto,user 0 0

不能使用 -o 选项,它是针对管理员的!正如上面@Stephen Kitt 的解释。

b.将权限从/usr/sbin/mount.cifsfrom更改为-rwxr-xr-xusing -rwsr-xr-x (按照上面的@Letokteren)

chmod 4755 /usr/sbin/mount.cifs
  1. 使用<add_your_UN>:

A。创建你的文件夹mkdir -p /srv/mount_destination

b.安装你开车!

USER=<add_your_UN> mount /srv/mount_destination

它会提示您输入网络密码,然后繁荣!

Password for <add_your_UN>@//remote_ip_address/folder:  ************

相关内容