CentOS 6.5 Samba 配置与使用详解
一、Samba 简介
Samba 是一个基于 SMB(Server Message Block)协议的开源软件套件,用于在 Linux 和 Unix 系统上实现文件和打印机共享,SMB 协议是由微软开发的,最初用于 Windows 操作系统中的网络邻居功能,通过 Samba,Linux 系统可以与 Windows 系统进行文件和打印共享,反之亦然。

二、安装 Samba
在 CentOS 6.5 上安装 Samba 相对简单,可以通过 Yum 包管理器来完成。
1、检查并安装 Samba
首先检查系统是否已经安装了 Samba,如果未安装,则执行以下命令进行安装:
- sudo yum install samba sambacommon sambaclient
2、启动并设置开机自启动
安装完成后,启动 Samba 服务并设置其开机自启动:
- sudo service smb start
- sudo chkconfig level 35 smb on
三、配置 SELinux 和防火墙
为了使 Samba 正常工作,需要配置 SELinux 和防火墙。

1、关闭 SELinux
临时关闭 SELinux:
- sudo setenforce 0
2、配置防火墙
开放 Samba 所需的端口(139 和 445):
- sudo iptables I INPUT p tcp dport 139 j ACCEPT
- sudo iptables I INPUT p tcp dport 445 j ACCEPT
- sudo service iptables save
- sudo service iptables restart
四、配置 Samba
Samba 的主要配置文件为/etc/samba/smb.conf
,以下是该文件的详细配置说明:
1. 全局设置

全局设置部分用[global]
括号包围,主要配置与 Samba 服务整体运行环境相关的选项。
- [global]
- workgroup = WORKGROUP
- server string = Samba Server %v
- netbios name = myserver
- security = user
- map to guest = bad user
- dns proxy = no
workgroup = WORKGROUP
:设置工作组名称。
server string = Samba Server %v
:服务器描述。
netbios name = myserver
:NetBIOS 名称。
security = user
:安全级别设置为“用户”级别,验证用户名和密码。
map to guest = bad user
:未授权的用户将被拒绝访问。
2. 共享定义
共享定义部分用[]
括号包围,每个[]
内的设置定义一个共享资源。
- [homes]
- comment = Home Directories
- browseable = no
- writable = yes
comment = Home Directories
:共享资源描述。
browseable = no
:不浏览此共享。
writable = yes
:可写。
3. 创建共享目录
创建实际的共享目录并设置权限:
- mkdir p /tmp/public
- chmod 777 /tmp/public
4. 编辑smb.conf
添加共享目录
- [public]
- path = /tmp/public
- comment = Public Stuff
- browseable = yes
- writable = yes
- public = yes
- create mask = 0777
- directory mask = 0777
path = /tmp/public
:指定共享目录路径。
comment = Public Stuff
:共享描述。
browseable = yes
:可浏览。
writable = yes
:可写。
public = yes
:公共共享。
create mask = 0777
和directory mask = 0777
:设置新建文件和目录的权限。
五、启动和测试 Samba
1、重启 Samba 服务
每次修改完配置文件后,都需要重启 Samba 服务:
- sudo service smb restart
2、查看服务状态
- sudo service smb status
3、测试连接
在 Windows 或 Linux 客户端上,使用如下命令测试连接:
- smbclient L //myserver_ip_address U username
六、常见问题及解决措施
Q1: 无法连接 Samba 服务器
A1: 确保防火墙已开放相应端口,SELinux 已正确配置,Samba 服务正在运行,可以使用以下命令检查:
- sudo service smb status
- sudo iptables L n | grep 139
- sudo iptables L n | grep 445
确保输出中包含对端口 139 和 445 的开放规则。
Q2: 权限问题导致无法访问共享目录
A2: 确保共享目录的权限设置正确,Samba 用户具有适当的权限,对于/tmp/public
目录,可以执行以下命令:
- sudo chown R sambauser:sambauser /tmp/public
- sudo chmod R 777 /tmp/public
检查smb.conf
中的用户映射设置,确保用户被正确映射到 Linux 系统用户。