You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Samba共享CIFS挂载后组无写入权限问题求助

解决Samba CIFS挂载后组无写入权限的问题

你的问题核心出在Samba配置的权限强制参数,以及CIFS挂载选项的设置上,咱们一步步来排查修复:

1. 修正Samba共享配置(smb.conf)

你设置的force directory mode=2000是关键问题——这个值只开启了setgid位(对应八进制的2000,也就是chmod g+s),但没有给组分配读写执行权限。同时force create mode=0777权限过于宽松,不符合你的组权限管控需求。

修改smb.conf中的相关参数:

[share_name]
path=/home/samba
read only=no
writeable=yes
public=no
# 让新建文件的组拥有读写权限,其他用户无权限
force create mode=0660
# 让新建目录保留setgid位,同时组拥有读写执行权限
force directory mode=2770
force group=group1
valid users=@group1
browseable=no
guest ok=no
# 注释掉该参数,避免和force类权限参数冲突
# inherit permissions=yes

说明:inherit permissions=yes会让Samba继承系统目录的原有权限设置,这可能会覆盖你配置的force系列参数,所以先注释掉,等权限正常后再根据实际需求调整。

2. 调整CIFS挂载选项

你的挂载命令缺少明确指定目录和文件权限的选项,导致挂载后权限被默认的rwxr-xr-x覆盖。修改挂载命令如下:

sudo mount -t cifs //server_name/share_name /mnt/share_name -o user=user1,gid=group1,dir_mode=0770,file_mode=0660,nounix

选项解释:

  • dir_mode=0770:强制挂载后的目录权限为组读写执行
  • file_mode=0660:强制挂载后的文件权限为组读写
  • nounix:避免CIFS客户端与Samba服务器的Unix权限映射冲突(针对Linux/Unix客户端非常有用)

3. 重启服务并验证

  • 重启Samba服务生效配置:
    sudo systemctl restart smbd nmbd
    
  • 卸载现有挂载并重新挂载:
    sudo umount /mnt/share_name
    # 用修改后的命令重新挂载
    sudo mount -t cifs //server_name/share_name /mnt/share_name -o user=user1,gid=group1,dir_mode=0770,file_mode=0660,nounix
    
  • 查看挂载后的权限:
    ls -ld /mnt/share_name /mnt/share_name/subdir*
    
    此时应该看到目录权限为drwxrws---,文件权限为-rw-rw----,group1组的用户可以正常执行写入操作。

额外检查点

  • 确认user1确实属于group1:执行id user1查看用户组信息
  • 检查Samba服务器上的SELinux/AppArmor设置(如果启用),确保它们没有阻止Samba的写入操作
  • 查看Samba日志(通常在/var/log/samba/目录下),若仍有问题,日志会提供更详细的错误线索

内容的提问来源于stack exchange,提问作者Albert Greinöcker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:52:06