不能直接用默认Samba配置实现域控集成;域控需Samba4+通过samba-tool domain provision初始化并以samba主进程启动,必须作为独立AD域控制器部署,不可与Windows AD共存于同一域。

不能直接用默认 Samba 配置实现域控集成;跨平台共享可快速达成,但域控(AD DC)需 Samba 4+ 编译启用 samba-tool,且必须作为独立域控制器部署,不能与 Windows AD 共存于同一域。
跨平台文件共享:5 分钟跑通 Windows 能看到、能读写的共享
核心是让 Windows 客户端在“网络”里发现 Linux 主机,并能访问一个带权限控制的目录。关键不在于功能堆砌,而在于绕过常见阻断点:
- 确保
smbd和nmbd都在运行:systemctl is-active smbd nmbd必须返回active,缺一不可 —— 少启nmbd,Windows 就搜不到机器名 -
/etc/samba/smb.conf的[global]段必须设workgroup = WORKGROUP(或你局域网实际工作组名),且security = user;map to guest = bad user可临时放行未认证访问,但生产环境应禁用 - 共享段示例(直接追加到配置末尾):
[shared] path = /srv/samba/shared browsable = yes writable = yes valid users = @sambashare
注意:路径必须存在、权限到位(chown -R :sambashare /srv/samba/shared && chmod -R 0775 /srv/samba/shared),且用户必须属于sambashare组并已用smbpasswd -a添加 - 防火墙必须放行
samba服务(firewall-cmd --add-service=samba --permanent && firewall-cmd --reload或ufw allow 'Samba'),只开445/tcp不够 ——nmbd依赖137/udp才能让主机名出现在“网络”中
域控集成:不是“配置选项”,而是换一套架构
所谓“Samba 域控”,指的是用 Samba 4+ 替代 Windows Server 的 Active Directory 域控制器角色。它和普通文件共享是两套启动模式,不能混用:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 启动方式完全不同:
smbd单独运行是文件服务器;要当域控,必须用samba-tool domain provision初始化数据库,并以samba(非smbd)主进程启动 —— 此时smbd、nmbd进程不再单独存在 - 不能加入现有 Windows AD 域做“成员服务器”:Samba 的
security = ads模式仅支持作为域成员(类似 Linux 加入 Windows 域),但无法提供域控服务;若要 Samba 当 DC,则整个域必须由它新建,Windows 域控制器无法与其共存于同一域 - 客户端加入域后,登录凭据走的是 Samba 自建的 Kerberos 和 LDAP 后端,Windows 客户端需手动配置 DNS 指向该 Samba 服务器(因域控依赖 DNS SRV 记录),这点常被忽略导致“加域成功但登录失败”
-
samba-tool是唯一管理接口,user add、dns zonecreate、domain level raise全靠它 —— 没有图形界面,也没有smb.conf参数能开关域控功能
SELinux 和防火墙:不关它们,90% 的连接问题都出在这儿
Rocky/AlmaLinux/RHEL 默认开启 SELinux,而 Samba 默认上下文不允许多数共享行为。这不是权限数字问题,是策略拦截:
- 共享目录必须打上
samba_share_t标签:semanage fcontext -a -t samba_share_t "/srv/samba/shared(/.*)?",再restorecon -Rv /srv/samba/shared;只改chmod没用 - 防火墙若用
iptables(旧系统)或未加载samba服务定义,需手动放通四端口:137/udp、138/udp、139/tcp、445/tcp;firewall-cmd --add-service=samba是最稳方案 - 测试连通性优先用命令行:
smbclient -L //$(hostname -f) -U%(匿名)或smbclient //server/shared -U username,比 Windows “映射网络驱动器” 更早暴露认证或 DNS 问题
真正卡住人的从来不是配置项本身,而是误以为“域控集成”能在已有文件共享基础上加几个参数就实现 —— 它需要重选启动模式、重配 DNS、重建用户体系。跨平台共享是开箱即用的工具,域控是另一套基础设施,别试图把它们塞进同一个 smb.conf 文件里。

















