centos7 安装配置samba服务
在 CentOS 7 上配置 Samba 服务可以实现 Windows 和 Linux 之间的文件共享。Samba 既可以配置为需要密码认证的私密共享,也可以配置为无需密码的公共共享。
由于 CentOS 7 已经在 2024 年停止维护,请确保你已经按照之前的步骤将 YUM 源切换到了官方的 Vault 历史归档源,否则安装会报错。
以下是完整的安装与配置全攻略:
第一步:安装 Samba 软件
在 root 终端下运行以下命令安装 Samba 及其核心组件:
Bash
yum install -y samba samba-client
第二步:配置共享方案(二选一)
Samba 的核心配置文件位于 /etc/samba/smb.conf。在修改前,我们先备份一下默认配置:
Bash
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
方案 A:配置【需要密码】的私密共享(推荐)
这种方案安全度高,适合存放私人或重要文件。
创建 Linux 用户和共享目录:
Bash
创建一个专门用于访问 Samba 的系统用户(无需登录系统的 shell)
useradd -s /sbin/nologin smbuser
创建共享文件夹并赋予权限
mkdir -p /opt/samba/private
chown -R smbuser:smbuser /opt/samba/private
chmod -R 775 /opt/samba/private
设置 Samba 访问密码:
使用 smbpasswd 命令为刚才创建的用户设置 Samba 专用的远程访问密码(可以与 Linux 系统密码不同):
Bash
smbpasswd -a smbuser
修改配置文件:
使用编辑器打开 nano /etc/samba/smb.conf,清空或在文件末尾追加以下内容:
Ini, TOML
[global]
workgroup = WORKGROUP
security = user
passdb backend = tdbsam
[PrivateShare]
comment = Private Secured Folder
path = /opt/samba/private
browseable = yes
writable = yes
valid users = smbuser方案 B:配置【无需密码】的公共共享(匿名访问)
这种方案无需密码,局域网内的任何人都能读写,适合共享公开资料。
创建公共共享目录:
Bash
mkdir -p /opt/samba/public
赋予所有人完全读写的权限
chmod -R 777 /opt/samba/public
chown -R nobody:nobody /opt/samba/public
修改配置文件:
使用编辑器打开 nano /etc/samba/smb.conf,将内容修改为:
Ini, TOML
[global]
workgroup = WORKGROUP
security = user
map to guest = Bad User # 关键:将未认证的用户映射为匿名访客
[PublicShare]
comment = Public Anonymous Folder
path = /opt/samba/public
browseable = yes
writable = yes
guest ok = yes
guest only = yes第三步:配置 SELinux 和防火墙
CentOS 7 默认的 SELinux 和防火墙策略非常严格,如果不配置,Windows 拦截会报错“无法访问”。
- 配置 SELinux(放行 Samba 目录权限)
如果是测试环境,可以直接临时关闭 SELinux (setenforce 0)。如果是生产环境,请执行以下命令赋予目录 Samba 上下文属性:
Bash
如果使用的是方案 A (私密共享)
chcon -t samba_share_t /opt/samba/private
如果使用的是方案 B (公共共享)
chcon -t samba_share_t /opt/samba/public
- 配置防火墙(放行 Samba 端口)
Samba 服务主要占用 137/138 UDP 和 139/445 TCP 端口。使用 FirewallD 放行:
Bash
firewall-cmd --zone=public --add-service=samba --permanent
firewall-cmd --reload
注意: 如果你的 CentOS 7 部署在阿里云、腾讯云等云服务器上,还必须去云控制台的安全组里,放行 TCP 445 和 TCP 139 端口。
第四步:启动 Samba 服务
配置完成后,启动服务并将其设置为开机自启:
Bash
启动 Samba 核心服务 (smb) 和 净名解析服务 (nmb)
systemctl start smb nmb
systemctl enable smb nmb
检查运行状态:
Bash
systemctl status smb
如果显示绿色的 active (running),说明 Samba 已经在后台顺利运转。
第五步:从客户端连接共享
- 在 Windows 电脑上连接
按下快捷键 Win + R 打开“运行”窗口。
输入 \你的服务器IP(例如:\192.168.1.50),然后点击确定。
如果是私密共享: 弹出的输入框中输入用户名 smbuser 和你在 smbpasswd 中设定的密码即可。
如果是公共共享: 直接就能看到 PublicShare 文件夹,双击即可无密码进入。
- 在 macOS 电脑上连接
打开 Finder(访达),按下 Cmd + K。
在服务器地址栏输入 smb://你的服务器IP,点击连接即可。