使用用户拥有的文件挂载 cifs

使用用户拥有的文件挂载 cifs

我希望能够将 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/

相关内容