Ubuntu挂载来宾Samba共享目录时遭遇权限拒绝错误的求助
先帮你梳理下问题背景:你在Xubuntu服务器上搭建了一个允许来宾访问的Samba共享,用Thunar通过smb://hostname.local/path能正常读写且无需账号密码,但用mount -t cifs命令挂载时却弹出mount error(13): Permission denied的权限错误。我给你几个排查方向,按顺序试应该能解决:
1. 先检查挂载路径是否匹配共享名
你的Samba配置里共享名是[myshare],对应的实际目录是/srv/samba,但你挂载命令里写的是//hostname.local/path——这很可能是最直接的错误!Thunar里的path应该是共享名myshare的笔误,修正后的挂载命令先试试:
sudo mount -t cifs //hostname.local/myshare /mnt/ftp1/ -o guest,rw
2. 指定CIFS协议版本兼容
如果路径没问题,可能是CIFS挂载的默认协议版本和你的Samba服务器不兼容。新的Samba版本通常支持SMB3,你可以在挂载参数里加上协议版本:
sudo mount -t cifs //hostname.local/myshare /mnt/ftp1/ -o guest,rw,vers=3.0
要是还是不行,再试试vers=2.0(部分旧设备可能需要这个版本)。
3. 确保服务器共享目录的系统权限
Samba的来宾用户默认映射到nobody,所以要保证服务器上的/srv/samba目录对nobody有读写权限:
在服务器上执行:
sudo chown nobody:nogroup /srv/samba sudo chmod 775 /srv/samba
如果只是测试用,也可以直接给全权限快速验证:
sudo chmod 777 /srv/samba
4. 挂载时指定本地用户的权限
有时候即使来宾权限没问题,挂载后的文件所有者可能是root,导致你本地普通用户无法读写。可以在挂载参数里加上你的UID和GID(用id命令能查到自己的uid/gid数值):
sudo mount -t cifs //hostname.local/myshare /mnt/ftp1/ -o guest,rw,vers=3.0,uid=1000,gid=1000
把1000换成你实际的uid和gid即可。
5. 排查AppArmor的限制
Xubuntu默认启用AppArmor,可能会限制CIFS挂载操作。可以临时关闭AppArmor测试:
sudo systemctl stop apparmor
如果挂载成功了,再去配置AppArmor允许相关操作(不推荐长期关闭)。
建议按这个顺序一步步排查,先从路径问题入手,这是最容易忽略的低级错误。
备注:内容来源于stack exchange,提问作者user3765127

