在 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 拦截会报错“无法访问”。

  1. 配置 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

  1. 配置防火墙(放行 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 已经在后台顺利运转。

第五步:从客户端连接共享

  1. 在 Windows 电脑上连接
    按下快捷键 Win + R 打开“运行”窗口。

输入 \你的服务器IP(例如:\192.168.1.50),然后点击确定。

如果是私密共享: 弹出的输入框中输入用户名 smbuser 和你在 smbpasswd 中设定的密码即可。

如果是公共共享: 直接就能看到 PublicShare 文件夹,双击即可无密码进入。

  1. 在 macOS 电脑上连接
    打开 Finder(访达),按下 Cmd + K。

在服务器地址栏输入 smb://你的服务器IP,点击连接即可。

标签: none

添加新评论