如何在 CIFS 挂载上 chown 文件?

如何在 CIFS 挂载上 chown 文件?

这是我的步骤:

mkdir /mnt/docs
chown www-data:www-data /mnt/docs
ls -l /mnt

积极结果:

drwxr-xr-x 2 www-data www-data 4096 Jan  6 01:14 docs
drwxr-xr-x 2 root     root     4096 Dec  8 21:46 cdrom

现在我成功挂载了远程共享(我可以touch以 root 身份向其发送文件),如下所示

mount -t cifs //192.168.1.10/Public/Documents/Docs -o username=****,password="****" /mnt/docs
ls -l /mnt

负面结果(所有者回到root):

drwxr-xr-x 2 root root    0 Jan 12 02:51 docs
drwxr-xr-x 2 root root 4096 Dec  8 21:46 cdrom

然后我尝试chown像这样使用符号链接(使用-h)

chown -h www-data:www-data /mnt/docs
ls -l /mnt

但结果还是

drwxr-xr-x 2 root root    0 Jan 12 02:51 docs
drwxr-xr-x 2 root root 4096 Dec  8 21:46 cdrom

如何以非 root 用户身份将共享挂载到本地挂载点?目标是让 Apache 能够写入远程共享。适用于 Debian 或 CentOS 系统的解决方案受到赞赏。另外,chmod也没有效果。


有关的:符号链接创建失败:更改所有权问题

答案1

我不确定您指的是哪个符号链接。您无法更改的是/mnt/docsCIFS 共享的挂载点 的所有者。安装点所有者更改为在其上安装某些内容的用户 ( root)。

既然只有root能够挂载,那么如何更改挂载点(及其底层内容)的所有者?使用uidgid选项(如果需要,还可以使用forceuidforcegid选项)。

请参阅以下的手册页mount.cifs

uid=参数

当服务器不提供所有权信息时,设置将拥有已安装文件系统上所有文件或目录的 uid。它可以指定为用户名或数字 uid。未指定时,默认为 uid 0。

因此,您的mount命令应该是:

mount -t cifs \
      -o username=****,password="****",uid=www-data \
      //192.168.1.10/Public/Documents/Docs \
      /mnt/docs

相关内容