长话短说,如何在 FreeNAS/TrueNAS 中对没有读权限的用户隐藏 SMB 共享文件夹是一个稍微麻烦的问题。TrueNAS 不像群晖等系统提供了现成的选项,需要手动配置 Share ACL 来开启。需要以下两步:

开启基于访问的共享枚举

首先进入Sharing - Windows Shares (SMB), 选择希望对无访问权限用户的共享项,点击Edit - ADVANCED OPTIONS,勾选Access Based Share Enumeration。 如果此处不可勾选则需要把Purpose选为No Presets

修改 Share ACL

启用Access Based Share Enumeration后,该共享就不会对无访问权限的用户展示。但该权限并不是由ZFS Filesystem ACL,而是由 Samba 实现的Windows ACLs控制,需要另行编辑。

还是找到需要隐藏的共享项,打开Edit Share ACL。修改ACL Entries中的EveryoneDOMAIN/NAME即可,其中DOMAIN一般为主机名,NAME则为你希望授权对其展示的用户名,也可根据需要自行配置权限。填写这两项需要将SID( Windows Security Identifier )留空。也可不填写DOMAIN/USERNAME,直接填写SID。系统中所有用户的SID可以通过命令net usersidlist获取。

当然在 CLI 下也可以通过sharesec命令来配置 Share ACLs,附文档 :https://www.samba.org/samba/docs/current/man-html/sharesec.1.html

时隔三年的新文,懒得插图,各位将就着看吧。