![对非 root 用户使用“mount -o”](https://linux22.com/image/111602/%E5%AF%B9%E9%9D%9E%20root%20%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%E2%80%9Cmount%20-o%E2%80%9D.png)
我有一个安装命令,它使用-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
- 使用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.cifs
from更改为-rwxr-xr-x
using-rwsr-xr-x
(按照上面的@Letokteren)
chmod 4755 /usr/sbin/mount.cifs
- 使用<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: ************