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

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

使用下面命令Linux上挂载windows上共享文件夹时,成功之后在Linux中发现可以访问,但不能修改。
mount -t cifs -o username="***",password="***"  //WindowsHost/sharefolder  /home/xxx/shared


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

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的。


卸载挂载目录:sudo umount shared


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

//WindowsHost/sharefolder /home/xxx/shared cifs defaults,auto,username="xxxx",password="***",gid="1000",uid="1000" 0 0 

参考资料:
1、Linux(ubuntu) mount 挂载windows共享文件权限问题 
2、Linux操作系统里如何通过用户名查看UID、GID

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在 Linux挂载 Windows 共享目录的方法如下: 1. 在 Linux 中安装 cifs-utils 工具,可以使用如下命令: sudo apt-get install cifs-utils 2. 创建一个目录来作为挂载点,如: sudo mkdir /mnt/win_share 3. 挂载共享目录,如: sudo mount -t cifs //192.168.1.100/share /mnt/win_share -o username=user,password=pass 其中 //192.168.1.100/share 是 Windows 共享目录的地址,username 和 password 是 Windows 用户名和密码。 如需持久挂载,可以在 /etc/fstab 文件中添加如下一行 //192.168.1.100/share /mnt/win_share cifs username=user,password=pass 0 0 如果遇到权限问题,可以在 mount 命令中添加参数 -o uid=1000,gid=1000(1000为linux用户的uid和gid) 挂载成功后,在 /mnt/win_share 目录中就能访问 Windows 共享目录中的文件了。 ### 回答2: LinuxWindows是两个不同的操作系统,它们的文件系统和网络协议也是不同的,因此在Linux上访问Windows共享目录需要特定的挂载操作。 首先,确保Linux系统中samba软件已经安装,如果没有安装,需要使用以下命令安装: ``` sudo apt-get install samba ``` 然后,创建一个本地目录,用于挂载Windows共享目录。假设我们要在Linux下访问Windows共享目录“//192.168.0.100/shared”,我们可以在Linux系统上使用以下命令创建本地目录: ``` sudo mkdir /mnt/winshare ``` 接下来,编辑samba的配置文件“/etc/samba/smb.conf”,在文件的末尾添加以下内容: ``` [winshare] path = //192.168.0.100/shared valid users = username read only = yes ``` 其中,“winshare”是共享目录的名称,”//192.168.0.100/shared“是Windows共享目录的路径,”username“是这个共享目录的拥有者名称。 然后在命令行中输入以下命令以验证samba配置是否正确: ``` sudo testparm ``` 如果没有发现配置错误,就可以挂载Windows共享目录了。使用以下命令在Linux挂载Windows共享文件夹: ``` mount -t cifs //192.168.0.100/shared /mnt/winshare -o username=username,password=password ``` 其中,“username”和“password”是Windows共享目录的有效用户凭据。我们可以使用以下命令检查目录是否已挂载: ``` mount | grep winshare ``` 现在,我们就可以在Linux系统中打开“/mnt/winshare”目录来查看Windows共享文件夹中的文件了。如果想要在系统启动时自动挂载Windows共享目录,可以在“/etc/fstab”文件中添加以下行: ``` //192.168.0.100/shared /mnt/winshare cifs username=username,password=password 0 0 ``` 这样,在系统启动时,就会自动挂载Windows共享目录了。 ### 回答3: 挂载Windows共享目录是在Linux系统中使用远程共享文件的方式之一,可以使Linux系统和Windows系统之间在文件共享方面实现互通。这里介绍了使用SMB/CIFS协议进行挂载Windows共享目录的方法。 1. 首先,在Linux系统下需要安装SMB/CIFS客户端。可以通过运行以下命令来进行安装: ``` sudo apt-get update sudo apt-get install cifs-utils ``` 2. 然后,创建一个用来挂载Windows共享目录的本地文件夹,比如: ``` sudo mkdir /mnt/winshare ``` 3. 接下来,使用以下命令进行挂载: ``` sudo mount -t cifs //windowsPC/sharename /mnt/winshare -o username=windows_username,password=windows_password ``` 其中,`//windowsPC/sharename` 指定了要挂载的主机以及共享名称;`/mnt/winshare` 是指将共享目录挂载到的本地目录;`username`和`password`参数分别是Windows系统的用户名和密码。 4. 成功挂载后,可以通过执行以下命令来查看共享的内容列表: ``` ls /mnt/winshare ``` 5. 若要取消挂载,则可以执行以下命令: ``` sudo umount /mnt/winshare ``` 需要注意的是,要确保Windows系统上的共享目录是可用的,且已经设置了适当的文件共享权限。同时,可以将挂载命令添加到 `/etc/fstab` 文件中,实现开机自动挂载。 最后需要提醒的是,这种方法虽然方便实现WindowsLinux文件共享,但是在网络中传输数据时可能存在安全风险,建议仅在安全可信的网络环境下使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值