一、安装 Samba 服务 Samba 主要包含三个包:samba(服务端)、samba-client(客户端工具)、samba-common(通用配置文件)。
1. 安装软件包 1 2 sudo yum install -y samba samba-client samba-common
2. 验证安装结果
二、Samba 服务基础管理 通过 systemctl 命令管理 Samba 服务(主服务为 smb 和 nmb,nmb 用于 NetBIOS 名称解析)。
功能描述
命令
启动服务
sudo systemctl start smb nmb
停止服务
sudo systemctl stop smb nmb
重启服务
sudo systemctl restart smb nmb
重载配置(不中断连接)
sudo systemctl reload smb nmb
开机自启
sudo systemctl enable smb nmb --now
查看服务状态
sudo systemctl status smb nmb
三、防火墙与 SELinux 配置 默认情况下,防火墙和 SELinux 会拦截 Samba 服务,需手动开放权限。
1. 防火墙配置(开放 Samba 端口) Samba 依赖 TCP 139、445 和 UDP 137、138 端口,通过 firewalld 开放:
1 2 3 4 5 6 7 8 sudo firewall-cmd --permanent --zone=public --add-service=sambasudo firewall-cmd --reloadsudo firewall-cmd --list-services
2. SELinux 配置(允许 Samba 访问目录) SELinux 需设置特定布尔值和安全上下文,确保 Samba 可读写共享目录:
(1)设置 SELinux 布尔值 1 2 3 sudo setsebool -P samba_enable_home_dirs on sudo setsebool -P samba_export_all_rw on
(2)配置共享目录的 SELinux 上下文 若共享目录为 /data/samba_share,需设置 samba_share_t 上下文:
1 2 3 4 5 6 7 8 sudo semanage fcontext -a -t samba_share_t "/data/samba_share(/.*)?" sudo restorecon -Rv /data/samba_sharels -dZ /data/samba_share
四、创建共享目录与权限配置 1. 创建共享目录 以 /data/samba_share 为例(可自定义路径):
1 2 3 4 5 sudo mkdir -p /data/samba_sharesudo echo "Samba Share Test File" > /data/samba_share/test.txt
2. 设置目录权限 确保 Samba 用户对目录有读写权限:
1 2 3 4 5 6 7 8 sudo chown -R root:root /data/samba_sharesudo chmod -R 775 /data/samba_share
五、配置 Samba 共享(核心步骤) Samba 主配置文件为 /etc/samba/smb.conf,通过修改该文件定义共享规则。
1. 备份默认配置 1 sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2. 编辑配置文件 1 sudo vi /etc/samba/smb.conf
(1)全局配置([global] 段) 保留核心配置,删除冗余内容:
1 2 3 4 5 6 7 [global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos-samba security = user map to guest = Bad User dns proxy = no
(2)添加共享配置(自定义共享名称) 在文件末尾添加共享规则(以 [samba_share] 为例):
1 2 3 4 5 6 7 8 9 10 [samba_share] comment = Public Samba Share path = /data/samba_share browseable = yes writable = yes guest ok = no valid users = samba_user create mask = 0664 directory mask = 0775
配置项说明 :
guest ok = yes:允许匿名访问(无需密码),适合公共共享;
valid users:限制特定用户访问(需先创建 Samba 用户);
create mask/directory mask:控制新建文件/目录的默认权限。
六、创建 Samba 用户 Samba 用户需基于系统用户(但密码独立),步骤如下:
1. 创建系统用户(若不存在) 1 2 sudo useradd -s /sbin/nologin samba_user
2. 添加为 Samba 用户并设置密码 1 2 3 4 5 6 sudo smbpasswd -a samba_user
3. 查看 Samba 用户列表
七、验证配置并重启服务 1. 检查配置文件语法
2. 重启 Samba 服务 1 sudo systemctl restart smb nmb
八、客户端访问测试 1. Windows 客户端访问
打开“文件资源管理器”,在地址栏输入 \\服务器IP(如 \\192.168.1.100);
弹出认证窗口,输入 Samba 用户名(samba_user)和密码(samba123);
成功访问后可看到 samba_share 共享文件夹,尝试创建/删除文件验证权限。
2. Linux 客户端访问 使用 smbclient 工具测试:
1 2 3 4 5 6 7 8 9 10 11 smbclient -L //192.168.1.100 -U samba_usersudo yum install -y cifs-utilssudo mkdir /mnt/sambasudo mount -t cifs //192.168.1.100/samba_share /mnt/samba -o username=samba_user,password=samba123cat /mnt/samba/test.txt
3. macOS 客户端访问
打开“访达”,按 Command + K;
输入 smb://192.168.1.100,点击“连接”;
输入用户名和密码,访问共享目录。