Ubuntu 14.04LTS挂载Windows共享:gvfs正常但mount.cifs权限异常求助
我之前在Ubuntu 14.04 LTS(trusty)上也碰到过一模一样的问题——gvfs能正常挂载Windows共享,但用mount.cifs给所有用户挂载时就碰权限坎儿。折腾了一阵终于搞定,分享下我的排查和解决思路:
核心原因先搞懂
gvfs是用户空间挂载工具,默认以当前登录用户的身份挂载共享,所以你能直接访问;而mount.cifs是系统级挂载,默认以root身份完成挂载,如果不指定权限参数,普通用户自然没访问权限——这就是两者的核心差异。
具体解决步骤
1. 修正mount.cifs的挂载参数(临时挂载)
直接在命令里加上权限相关参数,确保所有用户能读写访问。执行类似这样的命令:
sudo mount -t cifs //你的Windows服务器IP/共享名 /mnt/win-share -o username=你的Windows账号,password=你的密码,uid=1000,gid=1000,file_mode=0777,dir_mode=0777
- 这里的
uid=1000和gid=1000是你的普通用户ID,用id命令就能查到自己的uid/gid file_mode=0777和dir_mode=0777是让共享目录下的文件和文件夹对所有用户开放读写执行权限
2. 配置开机自动挂载(/etc/fstab)
如果需要开机自动挂载,别直接把密码写在fstab里(不安全),可以先创建一个凭证文件:
- 创建凭证文件:
sudo nano /etc/smbcredentials
写入内容:
username=你的Windows账号 password=你的Windows密码
- 设置凭证文件权限(只有root能读):
sudo chmod 600 /etc/smbcredentials
- 编辑/etc/fstab,添加挂载条目:
sudo nano /etc/fstab
加入:
//你的Windows服务器IP/共享名 /mnt/win-share cifs credentials=/etc/smbcredentials,uid=1000,gid=1000,file_mode=0777,dir_mode=0777 0 0
- 测试挂载是否生效:
sudo mount -a
3. 排查AppArmor限制
Ubuntu 14.04默认启用AppArmor,可能会干扰mount.cifs的权限设置。可以临时关闭测试:
sudo service apparmor stop
如果关闭后挂载正常,就需要调整AppArmor规则,或者把你的挂载目录/mnt/win-share加到允许访问的列表里。
4. 确保cifs-utils依赖完整
有时候缺失组件也会导致奇怪的权限问题,重新安装cifs-utils试试:
sudo apt-get update && sudo apt-get install --reinstall cifs-utils
内容的提问来源于stack exchange,提问作者user792015
相关产品推荐
相关产品推荐

