要让smb共享支持访客账号匿名访问,核心是启用“不安全的来宾登录”、激活guest账户、配置“仅来宾”网络访问模型、同步设置共享与ntfs权限中everyone的读写权限,并禁用smbv1、限制防火墙仅放行tcp 445端口以保障基础安全。
要让smb共享支持访客账号匿名访问,核心是绕过身份验证环节,让未提供凭据的用户也能读写(或仅读)指定目录。这在家庭nas、智能电视投屏、打印机共享等场景很实用,但必须限定在可信局域网内。
Windows 系统启用匿名访问的关键步骤
Windows 默认禁用匿名访问,需手动放开几处限制:
- 启用“不安全的来宾登录”:通过组策略(计算机配置 → 管理模板 → 网络 → Lanman工作站 → 允许不安全的来宾登录)设为已启用;或运行 PowerShell 命令:
Set-SmbClientConfiguration -EnableInsecureGuestLogons $true - 激活 Guest 账户:以管理员身份运行命令提示符,执行
net user guest /active:yes - 调整本地安全策略:打开
secpol.msc,在“安全选项”中设置:
→ “账户:来宾账户状态”为已启用
→ “网络访问:本地账户的共享和安全模型”选“仅来宾”
→ “网络访问:允许匿名 SID/名称转换”设为已启用
→ 关闭“不允许 SAM 账户和共享的匿名枚举” - 共享权限与 NTFS 权限同步放行 Everyone:右键文件夹 → 属性 → 共享 → 高级共享 → 权限中添加 Everyone 并勾选“读取”或“完全控制”;再切到“安全”选项卡,同样添加 Everyone 并赋予对应 NTFS 权限(如“读取和执行”+“列出文件夹内容”)
Linux(Samba)配置匿名共享的核心参数
Linux 下靠 Samba 服务实现,关键不在“开 Guest”,而在“映射失败登录为访客”:
- 在
/etc/samba/smb.conf的 [global] 段添加:security = usermap to guest = bad user
(这是现代 Samba 版本启用匿名访问的必备项,替代旧版的security = share) - 在共享段中明确声明:
guest ok = yespublic = yesread only = no(若需写入)或read only = yes(若只读)force user = nobody(可选,统一文件属主,避免权限混乱) - 确保共享目录归属和权限合理:
sudo chown -R nobody:nogroup /srv/anonymoussudo chmod -R 2755 /srv/anonymous(2755 启用 SGID,新文件自动继承组)
通用注意事项与安全收口
匿名访问本质是降级安全模型,务必配套收紧边界:
- 防火墙只放行 TCP 445 端口,禁止 UDP 137–139(NetBIOS)
- 禁用 SMBv1 协议(存在永恒之蓝漏洞),强制使用 SMB2 或 SMB3
- 共享段中设
browseable = no可隐藏共享名,防止被随意发现(仍可通过\IPsharename直接访问) - 不要将匿名共享指向系统盘根目录或含敏感数据的路径,建议单独挂载专用分区或目录











