我使用以下方式将 Windows 共享挂载到 Linux(rhel7)
mount -t cifs -o username=<share user>,password=<share password> //WIN_PC_IP/<share name> /mnt
我成功挂载了它。从 Linux 上,我尝试更改挂载文件夹的权限,但出现了错误。
chmod:更改“/mnt/”的权限:权限被拒绝
chmod -R 777 /mnt
如何更改 Linux 中已挂载文件夹的权限?
是否可以通过 Linux 命令 (chmod) 更改已安装的 Windows 文件夹的权限?
答案1
是否可以通过 Linux 命令 (chmod) 更改已安装的 Windows 文件夹的权限?
不会。CIFS 与 NTFS 非常相似,是一种虚拟文件系统,因此 chmod 不会产生影响。在将任何内容挂载到挂载点之前更改挂载点的权限也不会产生影响,因为挂载后的权限始终会替换挂载前的权限。
如果所需权限为 777,请更改挂载命令以包含这些权限:dir_mode=0777,file_mode=0777
。我也会养成添加该nounix
选项的习惯,尽管对于 Windows 共享来说它不会有太大作用。
所以尝试一下这个:
mount -t cifs -o username=<share user>,password=<share password>,dir_mode=0777,file_mode=0777,nounix //WIN_PC_IP/<share name> /mnt
并且我同意更好的挂载点是 /mnt 下的某个位置,而不是 /mnt 本身。
答案2
首先,只有 root(默认情况下)可以更改/mnt
目录本身的权限,因为它归root:root
- 所有,因此尝试修改其权限将以非 root 身份失败。
您可能希望通过在里面创建一个子目录/mnt
、更改它的权限、然后在那里挂载,使这个过程更容易。
首先卸载所有已经挂载的东西:
sudo umount /mnt
接下来创建一个子目录,用于挂载共享
sudo mkdir /mnt/share
现在将权限更改为您想要修改的用户所拥有的:
sudo chown foo:foo /mnt/share
其中foo:foo
,用户为foo
,应该是您的用户名。
最后安装到该/mnt/share
位置:
sudo mount -t cifs -o username=xxx,password=xxx //WIN_PC_IP/<share name> /mnt/share
如果您仍然遇到文件/mnt/share
不属于正确用户的问题,则您可能需要uid=xxx,gid=xxx
在挂载选项中指定。