Linux上mount 挂载windows共享文件权限问题

在服务器部署的时候需要把文件夹设置在windows的共享文件上。在使用mount命令挂载到linux上后。文件路径和文件都是可以访问,但是不能写入,导致系统在上传文件的时候提示“权限不够,没有写权限”。用"ls-l"查看挂载文件的权限设置是drwxr-xr-x,很明显没有写权限。想当然使用chmod来更改文件夹权限,结果提示权限不够。root和当前用户都不能正常修改权限。于是无语,不知如何进行了。
(windows权限记得在高级共享设置->公共->是否开启密码验证)
使用下面命令Linux上挂载windows上共享文件夹时,成功之后在Linux中发现可以访问,但不能修改。

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. mount -t cifs -o username="***",password="***"  //WindowsHost/sharefolder  /home/xxx/shared  

同时使用ls -l shared会发现shared目录所有者和用户组均是root,即使使用sudo chmod和sudo chown修改权限也提示权限不够。不过可以添加两个参数即可达到我们所要的效果:

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. mount -t smbfs -o username="***",password="***",gid="***",uid="****" //WindowsHost/sharefolder  /home/xxx/shared  



属性中的gid、uid,是你想要让挂载属于哪个用户的gid和uid。至于这个gid和uid,你可以使用id username来获得,比如说我的xxx,用户获得的gid和uid就是1000。
同时上述命令中的username和password是访问用来WindowsHost的。


例:我是用lnmp一键安装包的,运行nginx的用户的www,我就用id www查询他的gid uid 然后在进行挂载就不会出现权限的问题了!

卸载挂载目录:sudo umount shared

机器重启自动挂载,vi /etc/fstab最后加入: 

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. //WindowsHost/sharefolder /home/xxx/shared cifs defaults,auto,username="xxxx",password="***",gid="1000",uid="1000" 0 0   
原文地址:https://www.cnblogs.com/yifan72/p/6544319.html