Samba 在 CentOS 的安装与配置指南
Samba 是一个基于 SMB(Server Message Block)协议的开源软件套件,它允许 Linux 和 Unix 系统与 Windows 系统之间实现文件共享和打印共享,本文将详细介绍如何在 CentOS 上安装和配置 Samba,并提供一些常见问题的解答。

一、Samba 简介
Samba 的主要功能是让 Linux 系统能够通过 SMB 协议与 Windows 系统进行文件和打印共享,SMB 协议是一种用于局域网内不同计算机之间的文件、打印机等资源共享的通信协议,Samba 实现了 SMB 协议,使得 Linux 系统可以充当文件服务器或客户端,与 Windows 系统进行交互。
二、安装 Samba
1. 系统环境准备
操作系统:CentOS 7.x 或更高版本
网络配置:确保网络连接正常,防火墙设置允许相关端口通信(默认情况下,Samba 使用 TCP 端口 139 和 445,UDP 端口 137 和 138)
2. 安装步骤
2.1 更新系统并安装 Samba

- 更新系统包列表
- yum update y
- 安装 Samba
- yum install y samba sambacommon sambaclient
2.2 启动并启用 Samba 服务
- 启动 Samba 服务
- systemctl start smb
- 设置开机自启动
- systemctl enable smb
- 启动 NMB 服务(用于 NetBIOS 名称解析)
- systemctl start nmb
- 设置开机自启动
- systemctl enable nmb
2.3 验证安装
- 查看 Samba 服务状态
- systemctl status smb
- systemctl status nmb
如果服务运行正常,输出应显示active (running)
。
三、配置 Samba
1. 修改配置文件
Samba 的主配置文件位于/etc/samba/smb.conf
,可以使用文本编辑器打开并编辑该文件。
- 备份原始配置文件
- cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
- 编辑配置文件
- vi /etc/samba/smb.conf
2. 基本配置示例

以下是一个基本的smb.conf
配置示例,创建一个名为share
的共享目录:
- [global]
- workgroup = WORKGROUP
- server string = Samba Server %v
- security = user
- map to guest = bad user
- dns proxy = no
- [share]
- path = /srv/samba/share
- browseable = yes
- writable = yes
- valid users = @sambashare
- create mask = 0644
- directory mask = 0755
[global]
:全局设置,适用于所有共享。
workgroup
:工作组名称,Windows 网络上可见。
server string
:服务器描述。
security
:安全级别,user
表示需要用户名和密码认证。
map to guest
:未通过身份验证的用户将被拒绝访问。
[share]
:定义一个名为share
的共享目录。
path
:共享目录的路径。
browseable
:设置为yes
表示共享目录在网络中可见。
writable
:设置为yes
表示用户可以写入。
valid users
:允许访问的用户组。
create mask
和directory mask
:设置新建文件和目录的权限。
3. 创建共享目录并设置权限
- 创建共享目录
- mkdir p /srv/samba/share
- 设置目录权限
- chown R samba_user:samba_group /srv/samba/share
- chmod R 775 /srv/samba/share
将samba_user
和samba_group
替换为实际的系统用户和组。
4. 添加 Samba 用户并设置密码
- 添加系统用户(如已存在可跳过)
- useradd samba_user
- 设置 Samba 密码
- smbpasswd a samba_user
按照提示输入并确认密码。
5. 重启 Samba 服务
- 重启 Samba 服务以应用配置更改
- systemctl restart smb
四、常见问题解答(FAQs)
Q1: 如何更改 Samba 的监听端口?
A1: 可以通过修改/etc/samba/smb.conf
文件中的ports
参数来更改 Samba 的监听端口,将ports
设置为139
和445
:
- [global]
- ports = 139
- ports = 445
然后重启 Samba 服务使更改生效。
Q2: 如何允许匿名用户访问 Samba 共享?
A2: 要允许匿名用户访问,可以在共享配置中添加guest ok = yes
,并设置guest only = yes
(如果只允许匿名访问)。
- [public]
- path = /srv/samba/public
- browseable = yes
- guest ok = yes
- guest only = yes
- read only = no
这样配置后,无需密码即可访问public
共享,但请注意,这可能会带来安全隐患,请根据实际需求谨慎使用。