![使用用户拥有的文件挂载 cifs](https://linux22.com/image/1624903/%E4%BD%BF%E7%94%A8%E7%94%A8%E6%88%B7%E6%8B%A5%E6%9C%89%E7%9A%84%E6%96%87%E4%BB%B6%E6%8C%82%E8%BD%BD%20cifs.png)
我希望能够将 SMB 共享从我的 nas 安装到我的主文件夹,并且文件归我的帐户所有,而不是 root 所有。例如,目前我有:
ben@TP:~$ ls -la ~/nas_home/
total 8
drwxr-xr-x 2 ben users 4096 May 29 12:06 .
drwxr-xr-x 36 ben users 4096 May 29 12:06 ..
如果我随后运行挂载并列出文件,那么它们归 root 所有。
ben@TP:~$ sudo mount -t cifs -o username=ben //192.168.1.20/home ~/nas_home/
[sudo] password for root:
Password for ben@//192.168.1.20/home: **********
ben@TP:~$ ls -la ~/nas_home/
total 4
drwxr-xr-x 2 root root 0 May 29 12:02 .
drwxr-xr-x 36 ben users 4096 May 29 12:06 ..
drwxr-xr-x 2 root root 0 May 29 12:09 Documents
drwxr-xr-x 2 root root 0 May 27 12:24 Mail Archive
drwxr-xr-x 2 root root 0 May 27 09:53 @Recycle
drwxr-xr-x 2 root root 0 May 27 13:24 Scripts
drwxr-xr-x 2 root root 0 May 27 11:03 Techdocs
如果我尝试以用户身份运行挂载,我会收到以下消息:
This program is not installed setuid root - "user" CIFS mounts not supported.
虽然我相信我可以解决使用 setuid 挂载的权限问题,但我担心这可能会带来安全风险。
请问解决这个问题的最佳方法是什么 - 最好是在安装时?我知道我可以在安装后运行 chown。
谢谢
答案1
如果要挂载 CIFS,则需要指定登录凭据。你通过
-o username=
如果要将挂载点绑定到特定用户,则需要通过选项指定 GID/UID
-o uid=$(id -u ben),gid=$(id -g ben)
整个命令变成:
mount -t cifs -o username=ben,uid=$(id -u ben),gid=$(id -g ben) //192.168.1.20/home ~/nas_home/