升级到 Samba 4 后无法以访客用户身份写入 Samba 共享

升级到 Samba 4 后无法以访客用户身份写入 Samba 共享

我最近在 FreeBSD 11 系统上将 Samba 从 3.x 升级到 4.4.8。在升级过程中,我发现 已security = share被删除并被 替换为map to guest = Bad Password。更改后,我能够以访客身份连接到共享,但无法写入共享;客户端说权限被拒绝。

查看日志,我发现了这个错误:

[2017/01/08 20:17:59.632441,  3] ../source3/smbd/error.c:82(error_packet_set)
  NT error packet at ../source3/smbd/error.c(165) cmd=162 (SMBntcreateX) NT_STATUS_ACCESS_DENIED

这里是/usr/local/etc/smb4.conf

[global]
   workgroup = MYGROUP
   server string = share

   # security and map to guest were the only settings changed after upgrading
   security = user
   map to guest = Bad Password
   guest account = share

   log file = /var/log/samba4/log.%m
   max log size = 50
   log level = 3

   dns proxy = no

[share]
   path = /tank/share
   public = yes
   guest ok = yes
   only guest = yes
   writable = yes
   force user = share
   force group = share
   printable = no

目录的所有权:

$ ls -l -d /tank /tank/share
drwxr-xr-x  10 root   wheel   12 Dec  5 04:50 /tank
drwxr-xr-x  43 share  share  101 Jan  3 05:04 /tank/share

我在谷歌上搜索这个问题时,问题似乎在于没有设置writable = yes,没有执行force user,没有设置guest account,或者用户没有对目标目录的写权限,但这些看起来都很好。

Windows 和 Linux 客户端都会发生这种情况。

答案1

我不确定是什么修复了它,但有三处更改确实修复了它:

  • 更改map to guestBad User(如记录在基本配置文件Samba wiki 上的示例)
  • guest account从全局配置中删除
  • public = yes从共享配置中删除
[全球的]
   工作组 = MYGROUP
   服务器字符串 = 共享

   安全 = 用户
   映射到客人 =坏用户
   # 来宾帐户 = 分享

   日志文件 = /var/log/samba4/log.%m
   最大日志大小 = 50
   日志级别 = 3

   dns 代理 = 无

[分享]
   路径 = /tank/share
   # 公开 = 是
   客人同意 = 可以
   仅限客人 = 是
   可写 = 是
   强制用户=共享
   强制组=共享
   可打印 = 否

相关内容