samba配置成功需三要素对齐:smb.conf共享段、linux目录权限与selinux上下文、samba用户密码验证;安装须按发行版装全组件,配置后用smbd -t校验,共享目录需设sgid及selinux标签,用户须先建系统账户再设smbpasswd。

装 Samba 不难,但配错一步就连不上——核心是三个环节必须对齐:smb.conf 共享段写法、Linux 目录权限与 SELinux 上下文、Samba 用户密码验证。缺一不可。
安装时别漏关键组件
只装 samba 本体,后续会卡在找不到 smbpasswd 或配置校验失败。必须按发行版装全配套工具:
-
Ubuntu/Debian:运行
sudo apt install samba samba-common-bin samba-dsdb-modules(4.15+ 版本中,samba-dsdb-modules是smbpasswd的必需依赖) -
RHEL 8+/Rocky/AlmaLinux:用
sudo dnf install samba samba-client samba-common-tools(别用旧的samba-common,它不含smbd -t校验命令)
装完立刻验证:smbd -V 看版本,再跑 smbd -t 检查配置语法是否可解析——哪怕还没写配置,也能提前暴露包缺失问题。
smb.conf 配置要分层清晰
[global] 段只放全局控制项,每个共享目录必须独立成段,且参数位置不能错:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- [global] 中必须含:
workgroup = WORKGROUP、security = user、map to guest = never(少一个,Windows 可能弹“找不到网络路径”) - 共享段名不能含空格或特殊字符,例如
[shared]合法,[My Files]会失败 - 共享段内权限参数要成对:
read only = no必须和writable = yes同时出现(后者等价但前者优先级更高);browsable = yes决定是否出现在“网络”里;valid users = @sambashare推荐用组名,方便后期增删用户
共享目录权限与 SELinux 必须同步设置
Windows 登录用的是 Samba 用户,但实际读写走的是系统用户身份。所以三者必须对齐:
- 先建组:
sudo groupadd sambashare - 新建目录并设属组与 SGID 权限:
sudo mkdir -p /srv/samba/shared && sudo chown root:sambashare /srv/samba/shared && sudo chmod 2775 /srv/samba/shared(2确保新文件自动继承组) - 若启用 SELinux,加上下文标签:
sudo semanage fcontext -a -t samba_share_t "/srv/samba/shared(/.*)?" && sudo restorecon -Rv /srv/samba/shared - 确认结果:
ls -ldZ /srv/samba/shared应显示system_u:object_r:samba_share_t:s0
用户必须先有系统账户,再加 Samba 密码
Samba 不直接用系统密码,但用户必须是已存在的系统账户:
- 添加系统用户(无登录 shell):
sudo useradd -M -s /usr/sbin/nologin alice - 加进共享组:
sudo usermod -aG sambashare alice - 再设 Samba 密码:
sudo smbpasswd -a alice(输两次密码,不回显)
启动服务:sudo systemctl enable --now smbd nmbd;开放防火墙端口(TCP 139/445,UDP 137/138);Windows 资源管理器中访问 \服务器IPshared 即可。










