尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CentOS 7 搭建 Samba 文件共享并配置用户、部门权限与 SELinux

CentOS 7 搭建 Samba 文件共享并配置用户、部门权限与 SELinux
📅 发布时间:2026/7/22 11:20:37

CentOS 7 搭建 Samba 文件共享并配置用户、部门权限与 SELinux

1. 服务介绍

Samba 在 Linux/Unix 系统上实现 SMB/CIFS 协议,使 Windows、Linux 和其他支持 SMB 的客户端能够访问共享目录与打印资源。它适合局域网文件交换、部门资料隔离、统一账号认证及跨平台协作。

本实验先创建仅指定用户可读写的基础共享,再完成学校公共目录、教务处目录和招生办目录的权限隔离。公共目录允许所有人只读;部门目录只允许校长和对应部门成员访问、写入。

2. 准备运行环境

• 服务端:CentOS 7.x,示例地址10.1.100.101。

• 客户端:Windows 10/11 或安装了samba-client的 Linux 主机。

• 权限:使用root,或通过sudo执行管理命令。

• 网络:客户端与服务端互通,YUM 软件源可用。

• 名称解析:没有 DNS 时直接使用服务端 IP;需要使用主机名时提前配置 DNS 或 hosts。

先确认系统和网络:

cat /etc/centos-release ip addr ip route ping -c 4 10.1.100.1 yum repolist

3. 相关知识

• SMB 主要使用 TCP 445;旧版 NetBIOS 场景还会使用 TCP 139、UDP 137 和 UDP 138。

• Samba 用户必须先存在于 Linux 系统,再通过smbpasswd -a 用户名加入 Samba 密码库。系统密码与 Samba 密码可以不同。

• 访问权限取 Samba 配置、Linux 文件权限、SELinux 标签和防火墙规则四者交集。任一层拒绝,客户端都无法正常访问。

•valid users控制允许访问的用户;write list控制可写用户;read only = yes表示只读;用户组前加@。

•testparm -s可在重启前检查语法和最终生效配置。配置错误时不要反复重启服务。

• CentOS 7 使用tdbsam作为常见密码后端,不应再配置已废弃的smbpassword file。出现Unknown parameter encountered: "smbpassword file"时,应删除该参数。

• Windows 会缓存 SMB 凭据。切换测试账号前可执行net use * /delete /y清理旧连接。

• 不建议用chmod 777、停防火墙或关闭 SELinux解决权限问题。应配置最小目录权限、放行 Samba 服务并设置正确 SELinux 类型。

4. 实验步骤

4.1 安装 Samba 与管理工具

yum -y install samba samba-client samba-common-tools policycoreutils-python acl rpm -qa | grep '^samba' | sort

也可以用 YUM 查看已安装组件:

yum list installed 'samba*'

正确的 RPM 查询命令是rpm -qa,不是原记录中的rm -qa:

4.2 创建基础共享用户和目录

创建共享组、两个禁止交互登录的系统用户,并设置目录最小权限:

groupadd smbusers useradd -M -s /sbin/nologin -G smbusers qwe useradd -M -s /sbin/nologin -G smbusers ewq mkdir -p /srv/samba/basic chown root:smbusers /srv/samba/basic chmod 2770 /srv/samba/basic

2770中的首位2表示 SGID,新文件会继承smbusers组;组成员可读写,其他用户无权限。

4.3 创建部门用户、用户组和目录

实验权限需求如下:

创建教务处和招生办用户组:

groupadd gjwc groupadd gzsb useradd -M -s /sbin/nologin rector useradd -M -s /sbin/nologin liu2 useradd -M -s /sbin/nologin zhang3 useradd -M -s /sbin/nologin li4 useradd -M -s /sbin/nologin wang5 usermod -aG gjwc,gzsb rector usermod -aG gjwc liu2 usermod -aG gjwc zhang3 usermod -aG gzsb li4 usermod -aG gzsb wang5

创建公共目录和部门目录:

mkdir -p /srv/samba/school/{share,jwc,zsb} chown root:root /srv/samba/school/share chmod 0755 /srv/samba/school/share chown root:gjwc /srv/samba/school/jwc chmod 2770 /srv/samba/school/jwc chown root:gzsb /srv/samba/school/zsb chmod 2770 /srv/samba/school/zsb

原实验中目录创建结果如下;本文改用/srv/samba/school统一管理共享数据:

4.4 配置 Samba

备份原配置:

cp -a /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%F-%H%M%S)

编辑/etc/samba/smb.conf:

[global] workgroup = WORKGROUP security = user map to guest = Bad User passdb backend = tdbsam log file = /var/log/samba/log.%m max log size = 1000 [basic] comment = Basic authenticated share path = /srv/samba/basic browseable = yes read only = no valid users = @smbusers force group = smbusers create mask = 0660 directory mask = 2770 [share] comment = Public read-only share path = /srv/samba/school/share browseable = yes guest ok = yes read only = yes [jwc] comment = Academic Affairs Office path = /srv/samba/school/jwc browseable = yes read only = no valid users = @gjwc write list = @gjwc force group = gjwc create mask = 0660 directory mask = 2770 [zsb] comment = Admissions Office path = /srv/samba/school/zsb browseable = yes read only = no valid users = @gzsb write list = @gzsb force group = gzsb create mask = 0660 directory mask = 2770

先检查配置,确认没有报错:

testparm -s

4.5 添加 Samba 密码

逐个执行并输入 SMB 密码:

smbpasswd -a qwe smbpasswd -a ewq smbpasswd -a rector smbpasswd -a liu2 smbpasswd -a zhang3 smbpasswd -a li4 smbpasswd -a wang5 pdbedit -L

下面旧截图中的用户已添加成功,但同时出现Unknown parameter encountered: "smbpassword file":

该警告由旧配置项smbpassword file引起。删除它并保留passdb backend = tdbsam,再执行testparm -s,不应继续出现警告。

4.6 配置 SELinux 和防火墙

为共享目录设置持久 SELinux 文件类型:

semanage fcontext -a -t samba_share_t "/srv/samba(/.*)?" restorecon -Rv /srv/samba ls -Zd /srv/samba /srv/samba/basic /srv/samba/school/*

放行 Samba 服务,不关闭防火墙:

firewall-cmd --permanent --add-service=samba firewall-cmd --reload firewall-cmd --list-services

启用并启动服务:

systemctl enable --now smb nmb systemctl restart smb nmb

4.7 Windows 客户端访问

按Win + R,输入:

\\10.1.100.101

输入 Samba 用户名和密码后,可看到基础共享、公共共享及有权限访问的部门目录:

切换账号测试前,在 Windows 命令提示符执行:

net use * /delete /y net use \\10.1.100.101\jwc /user:liu2

5. 验证结果

5.1 服务端验证

testparm -s systemctl --no-pager --full status smb nmb ss -lntup | egrep ':445|:139|:137|:138' pdbedit -L smbclient -L //127.0.0.1 -U qwe smbstatus journalctl -u smb -u nmb -n 100 --no-pager

验证 SELinux 和防火墙:

getenforce ls -Zd /srv/samba /srv/samba/basic /srv/samba/school/* firewall-cmd --query-service=samba

5.2 Linux 客户端验证

yum -y install samba-client cifs-utils smbclient -L //10.1.100.101 -U qwe smbclient //10.1.100.101/basic -U qwe

进入smbclient后,用ls查看目录,用put 文件名测试上传,用get 文件名测试下载。

5.3 Windows 客户端验证

Test-NetConnection 10.1.100.101 -Port 445 Get-SmbConnection net use

预期结果:

• 匿名用户能读取share,不能写入。

•qwe、ewq能读写basic。

•liu2、zhang3和rector能访问并写入jwc;招生办普通用户不能访问。

•li4、wang5和rector能访问并写入zsb;教务处普通用户不能访问。

•testparm -s无错误,445 端口监听,日志没有持续认证或权限拒绝。

相关新闻

  • HTTP 404错误解析与优化实践指南
  • 毕业生必看!档案存放 +管理全指南 - 慧办好
  • iPhone查找功能全攻略:从设置到应急响应

最新新闻

  • 二手MacBook价格波动解析与选购指南
  • 用了就上头的硬核APP
  • 深入解析Tiva C系列ADC核心寄存器:多通道采样与数据流管理实战
  • 从“跑断腿”到“掌上控”:楼宇暖通远程运维的价值重估
  • Docker部署etcd集群权限问题解决方案
  • Java参数校验实战:从基础注解到自定义校验器

日新闻

  • AI云原生实战05-金融AI上云最难的不是技术,是“不出事“——TCE银行风控架构拆解
  • 2026年GEOSEO优化公司选型深度测评:五大硬核标准严选,这六家重塑搜索增长新格局 - 品牌前沿专家
  • **核验!2026年7月卡地亚香港**售后网点地址及服务电话公告 - 卡地亚服务中心

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号