收起左侧

在AI的帮助下,修复了SMB

0
回复
24
查看
[ 复制链接 ]

3

主题

2

回帖

0

牛值

江湖小虾

悬赏1飞牛币未解决

之前说了SMB打开后也无法访问,

https://club.fnnas.com/forum.php?mod=viewthread&tid=62749

于是和Claude反应,ssh登录进去一步一步排查,终于修复了。

总结如下,希望能给大家有所借鉴。

核心 bug:Web 面板上的 SMB 设置没有写入 Samba 配置文件

具体来说,fnOS 的设计本来应该是这样工作的:

  • 你在面板里创建团队文件夹 + 勾选**"允许通过 SMB/WebDAV/FTP 挂载"**
  • fnOS 后端把这个意图翻译成 Samba 的共享段,写入 /etc/samba/users/<uid>.share.conf(这是它原本的设计——smb.conf 里有 include = /etc/samba/users/%Y.share.conf 这一行就是为此准备的)
  • Samba 重启后自动加载,SMB 共享就生效

但实际发生的事情是:

  • /etc/samba/users/ 这个目录根本不存在
  • %Y.share.conf 这个文件从未被生成过
  • 你在面板里设置的"团队文件 = 全部允许"完全没产生任何效果
  • 唯一被正确写入 smb.custom.conf 的,只有 Time Machine 那一个共享段

结论:fnOS 的"团队文件 SMB 共享"功能在你这个版本上没有正确实现配置写入,是个明显的功能缺陷。Samba 服务本身工作正常,发现机制(mDNS)也正常,密码认证也正常——纯粹是上层管理面板没把用户意图变成实际配置。

排查过程的逻辑

复盘一下我们是怎么一步步定位的:

  1. 第一步 smb.conf 看到 include = users/%Y.share.conf → 推测 fnOS 用按用户分文件的配置机制
  2. ls /etc/samba/users/ 报不存在 → 这个机制根本没启动
  3. testparm -s 只展开出 [TimeMachine] → 确认实际生效的共享只有一个
  4. 面板里看到"可见文件夹范围 = 全部允许" → 面板状态和实际配置不一致
  5. 修改面板设置后 smb.custom.conf 时间戳变了但内容没变 → fnOS 写文件了但没写共享段,确认是 bug
  6. smbclient -L localhost 本机看也只有 TimeMachine → 排除 macOS 客户端因素,确诊是服务端问题

临时方案的代价

我们手动改 smb.custom.conf 加共享段,绕过了 fnOS 面板。这能用,但有几个隐患你要记着:

  • 下次面板改 SMB 设置可能覆盖你的手工配置——所以备份很重要
  • 新增团队文件夹/我的文件子文件夹时,面板不会自动加 SMB 共享——需要你手动追加配置段
  • fnOS 升级时不保证 smb.custom.conf 不被改写——升级后建议立刻检查共享是否还在

总结一句话就是:fnOS 的管理面板和底层 Samba 配置之间的"翻译层"没工作——你在 UI 上做的所有 SMB 设置都只是停留在面板状态里,没有真正落到 /etc/samba/ 下的配置文件,所以 SMB 服务自然不知道该共享什么。

收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则