这是我的步骤:
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/docs
CIFS 共享的挂载点 的所有者。安装点所有者更改为在其上安装某些内容的用户 ( root
)。
既然只有root
能够挂载,那么如何更改挂载点(及其底层内容)的所有者?使用uid
和gid
选项(如果需要,还可以使用forceuid
和forcegid
选项)。
请参阅以下的手册页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