CentOS 6.9作为一款经典的Linux发行版,虽然已停止官方支持,但在一些特定场景下仍被广泛使用,Samba(SMB)协议的实现工具,允许CentOS系统与Windows或其他支持SMB协议的操作系统进行文件和打印机共享,本文将详细介绍在CentOS 6.9上安装和配置Samba服务器的步骤,确保用户能够顺利完成搭建。

安装前的准备工作
在开始安装Samba之前,确保系统已更新至最新状态,并检查网络配置是否正确,打开终端,执行以下命令更新系统:
sudo yum update -y
确保服务器有静态IP地址,以便客户端能够稳定访问,使用ifconfig或ip addr命令查看网络接口信息,并通过vi或nano编辑器修改/etc/sysconfig/network-scripts/ifcfg-eth0文件(根据实际网卡名称调整),设置BOOTPROTO=static并配置IP地址、子网掩码、网关和DNS。
安装Samba软件包
CentOS 6.9的软件源中默认包含Samba的稳定版本,执行以下命令安装Samba及其相关依赖:
sudo yum install samba samba-client samba-common -y
安装完成后,使用smbstatus命令验证Samba是否正确安装,如果命令能够显示帮助信息,则说明安装成功。
配置Samba服务
Samba的主要配置文件位于/etc/samba/smb.conf,在修改之前,建议先备份原始配置文件:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
使用vi编辑器打开smb.conf:
sudo vi /etc/samba/smb.conf
在[global]部分,设置工作组名称,确保与Windows工作组一致:
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos-samba security = user map to guest = bad user
添加共享目录的配置,创建一个名为shared的共享目录,并设置权限:

[shared] comment = Public Shared Folder path = /home/samba/shared browsable = yes writable = yes guest ok = yes read only = no
保存文件后,创建共享目录并设置适当的权限:
sudo mkdir -p /home/samba/shared sudo chmod -R 0777 /home/samba/shared sudo chown -R nobody:nobody /home/samba/shared
设置Samba用户和密码
Samba使用独立的用户数据库,需要为共享用户设置Samba密码,确保系统用户存在(如testuser),然后执行以下命令添加Samba用户:
sudo smbpasswd -a testuser
根据提示输入密码后,该用户即可访问共享目录,如果需要匿名访问,确保guest ok = yes已启用。
启动并设置开机自启
配置完成后,启动Samba服务并设置开机自启:
sudo service smb start sudo service nmb start sudo chkconfig smb on sudo chkconfig nmb on
使用service smb status检查服务状态,确保已正常运行。
防火墙与SELinux配置
CentOS 6.9默认启用防火墙,需要开放Samba相关端口(TCP 139和445),执行以下命令:
sudo iptables -I INPUT -p tcp --dport 139 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 445 -j ACCEPT sudo iptables -I INPUT -p udp --dport 137 -j ACCEPT sudo iptables -I INPUT -p udp --dport 138 -j ACCEPT sudo service iptables save
如果启用了SELinux,需要调整其策略以允许Samba访问共享目录:
sudo setsebool -P samba_enable_home_dirs on sudo setsebool -P samba_export_all_rw on sudo chcon -t samba_share_t /home/samba/shared
客户端访问测试
在Windows系统中,打开文件资源管理器,在地址栏输入\\<服务器IP地址>(如\\192.168.1.100),即可访问共享目录,对于Linux客户端,可使用smbclient命令行工具:

smbclient //192.168.1.100/shared -U testuser
输入密码后,可执行ls、get、put等命令进行文件操作。
常见问题排查
如果无法访问共享目录,首先检查Samba服务状态和防火墙设置,使用testparm命令验证smb.conf语法是否正确:
sudo testparm -s
检查日志文件/var/log/samba/log.smbd和/var/log/samba/log.nmbd,定位错误原因,确保共享目录的权限和SELinux上下文配置正确。
FAQs
Q1: 如何在CentOS 6.9上实现Samba的只读共享?
A1: 在smb.conf中修改共享目录的配置,将writable设为no,read only设为yes。
[readonly_shared] path = /home/samba/readonly browsable = yes writable = no guest ok = yes
保存后重启Samba服务即可生效。
Q2: 如何限制Samba用户只能访问自己的家目录?
A2: 在smb.conf的[global]部分添加unix password sync = yes和pam password change = yes,然后为每个用户创建家目录并设置权限,启用[homes]共享段,Samba会自动映射用户到家目录。
[homes] comment = Home Directories browseable = no writable = yes valid users = %S
重启服务后,用户可通过\\<IP>\用户名访问自己的家目录。