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 = noworkgroup = 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 = yescomment = 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 = 0777path = /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 系统用户。
