CentOS Samba 配置指南
一、简介

Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成,它主要用于在 Linux 与 Windows 系统之间实现文件和打印机的共享,通过 Samba,Linux 系统可以作为文件服务器,向 Windows 客户端提供文件访问服务。
二、安装 Samba
修改yum源
sudo yum install epelrelease y sudo yum install samba sambacommon sambaclient y
启动并设置开机自启
sudo systemctl start smb sudo systemctl enable smb sudo systemctl start nmb sudo systemctl enable nmb
三、配置 Samba
配置文件结构
/etc/samba/smb.conf 是 Samba 的主要配置文件,该文件通常包含三个默认的配置段:[global]、[homes] 和[printers]。
全局配置段([global])
[global] workgroup = WORKGROUP server string = Samba Server %v security = user map to guest = bad user dns proxy = no
workgroup: 指定工作组名称。
server string: 描述 Samba 服务器。

security: 安全级别,设为user 表示使用用户名和密码进行验证。
map to guest: 不允许匿名用户访问。
dns proxy: 不启用 DNS 代理。
共享目录配置
添加一个新的共享目录,例如[data],在[global] 段下方添加以下内容:
[data] comment = Data Shared Folder path = /data browseable = yes writable = yes guest ok = yes
comment: 共享目录的描述信息。
path: 共享目录在服务器上的路径。

browseable: 设置为yes 表示允许浏览。
writable: 设置为yes 表示允许写入。
guest ok: 设置为yes 表示允许匿名访问。
四、创建系统用户和目录权限设置
sudo useradd m testuser sudo passwd testuser sudo chown R testuser:testuser /data sudo chmod R 755 /data
五、创建 Samba 用户
sudo smbpasswd a testuser
按照提示输入并确认密码。
六、启动和测试 Samba 服务
启动 Samba 服务
sudo systemctl restart smb sudo systemctl restart nmb
防火墙设置
如果系统启用了防火墙,需要允许 Samba 服务通过防火墙:
sudo firewallcmd permanent addservice=samba sudo firewallcmd reload
测试访问
在 Windows 资源管理器中,输入\\服务器IP\数据,然后输入之前创建的 Samba 用户testuser 及其密码即可访问共享目录。
七、常见问题解决
无法访问共享目录
检查以下几点:
确保 Samba 服务已启动。
确保防火墙已放行 Samba 服务。
检查/etc/samba/smb.conf 配置文件中的路径和权限设置是否正确。
确保用户已在系统中创建,并且已正确添加到 Samba。
权限问题
确保共享目录的权限设置正确,使目标用户具有适当的读写权限。
sudo chown R testuser:testuser /data sudo chmod R 755 /data
Samba 服务无法启动
查看日志文件以获取更多信息:
sudo tail f /var/log/samba/log.smbd
