首页/新闻资讯/正文详情

Debian Jessie/Stretch 上 Samba 4 域控脚本配置与备份验证实战

发布时间:2026/11/2 12:51:48 来源:云帆数科 栏目:资讯中心
Debian Jessie/Stretch 上 Samba 4 域控脚本配置与备份验证实战
简介这份资源面向在 Debian 环境下运维 Samba 4AD-DC的工程师与运维人员汇集了作者日常使用的实用脚本覆盖备份、权限检查、sysvol ACL 设置、域信息查看与调试信息收集等场景可帮助读者减少手工排查与重复配置的工作量。压缩包共 25 个文件以 12 个 sh 脚本、9 个 txt 说明文档和 3 个 md 文件为主另含一份 backup_samba4 备份脚本整体约 71KB体积轻便。其中 txt 与 md 文档记录了 Debian Stretch、Buster 及 Ubuntu 18.04 上搭建 Samba AD-DC、成员服务器与文件服务器的操作要点脚本则对应备份、SePrivileges 检查、sysvol 权限设置、DNS 批量添加、数据库复制检查等具体任务。已有 250 人学习适合需要快速上手或完善现有 Samba 4 部署的读者参考借鉴。1. 从一台域控装完却连不上开始说 Samba 4上周帮一个朋友收拾他实验室里那台 Debian 机器Samba 4 装完、smb.conf也照着某篇老帖抄了一遍结果smbclient -L localhost直接报NT_STATUS_CONNECTION_REFUSEDsystemctl status smbd看着又是 active。折腾到半夜才发现他装的是 Debian Stretch 的 Samba 4.5而抄的配置是 Jessie 时代 4.2 的写法server max protocol和ntlm auth两处默认值都变了。这种「装上了但跑不通」的场面在 Debian Jessie 和 Stretch 上做 Samba 4 域控、文件共享、sysvol 备份的人几乎都遇过。这篇笔记就是围绕一套在 Debian Jessie / Stretch 上实测过的 Samba 4 脚本工具集来写从版本选择、依赖安装、脚本配置到备份验证一步步走完适合刚接手域控运维、又不想每次手敲一长串smbclient和rsync的开发者。2. 装前把版本和依赖钉死Jessie 与 Stretch 的差异2.1 两个发行版到底差在哪这套脚本的标题写得很直白在 Debian Jessie 和/或 Debian Stretch 上测试过。这句话不是客套它决定了你后面所有命令能不能直接抄。Jessie 自带的是 Samba 4.2.xStretch 自带的是 Samba 4.5.x两者在域控角色、备份路径、samba-tool子命令上都有细微差别。我一般会先确认系统版本和 Samba 版本再决定用哪套参数# 确认发行版代号jessie 还是 stretch cat /etc/debian_version lsb_release -a 2/dev/null # 确认 Samba 主版本4.2 和 4.5 的配置项默认值不同 smbd --version samba-tool --version/etc/debian_version在 Jessie 上返回8.xStretch 上返回9.xsmbd --version会打印类似Version 4.2.14-Debian或4.5.16-Debian。这两条信息决定了后面smb.conf里server max protocol要不要显式写、ntlm auth要不要打开。脚本本身不挑版本但它调用的samba-tool子命令在 4.2 和 4.5 之间参数名有变化所以装之前先把版本钉死比装完再救省事得多。2.2 依赖清单和安装命令Samba 4 域控和这套备份脚本依赖的东西不多但少一个就会在某个环节翻车。常见做法是把下面这组包一次装齐# 更新索引后安装 Samba 4 及脚本依赖 apt-get update apt-get install -y samba samba-common-bin smbclient \ rsync cron tar gzip # 如果这台机器要当域控还需要这些 apt-get install -y krb5-user libpam-winbind libnss-winbind \ attr aclsamba是主服务包samba-common-bin提供smbclient、smbpasswd等工具smbclient单独列出来是因为有些最小化镜像里它不在依赖链上。rsync和tar、gzip是备份脚本的核心脚本里做 sysvol 同步和打包全靠它们。krb5-user在配域控时用于 Kerberoslibpam-winbind和libnss-winbind让系统账户能和域账户对上attr、acl则是保留文件权限和扩展属性的关键——备份 sysvol 时如果丢了 ACL恢复出来的共享权限全是错的这个坑后面还会提。提示Jessie 的apt-get源如果已经归档需要先把/etc/apt/sources.list指向归档地址再apt-get update否则装到一半报 404。Stretch 同理装之前先确认源可用。2.3 脚本放哪、权限怎么给这套脚本是 Shell 写的拿到之后不要随手丢在/tmp里跑。我一般统一放在/usr/local/sbin/samba4-scripts/属主 root脚本本身给750避免普通用户误执行改坏配置# 建目录、放脚本、收紧权限 mkdir -p /usr/local/sbin/samba4-scripts cp -a ./samba4-scripts/* /usr/local/sbin/samba4-scripts/ chown -R root:root /usr/local/sbin/samba4-scripts chmod -R 750 /usr/local/sbin/samba4-scripts # 确认脚本首行是 bash避免 sh 解释器差异 head -n 1 /usr/local/sbin/samba4-scripts/*.shchmod 750意味着只有 root 和 root 组能读执行其他用户连看都看不到这对含域控凭据的备份脚本是必要的。head -n 1那步别省Debian 上/bin/sh指向 dash脚本里如果用了[[ ]]或数组用sh跑会直接语法报错确认首行是#!/bin/bash再往下走。3. 配置 Samba 4 与脚本参数把路径和凭据写对3.1 smb.conf 里必须显式写的几项不管脚本怎么封装底层还是靠smb.conf和samba-tool。在 Jessie 的 4.2 上server max protocol默认是SMB3Stretch 的 4.5 也是但如果你要和更老的客户端互通得手动降反过来ntlm auth在 4.5 里默认只允许ntlmv2老设备连不上就是这个原因。我一般会在[global]里显式写死这几项避免默认值随版本漂移[global] workgroup WORKGROUP server string Samba4 DC netbios name DC01 server role active directory domain controller dns forwarder 127.0.0.1 # 4.2 和 4.5 都建议显式指定避免默认值差异 server max protocol SMB3 # 老客户端需要时再打开默认保持 ntlmv2 ntlm auth ntlmv2-only # 备份脚本读取的共享路径 path /var/lib/samba/sysvol read only noserver role active directory domain controller是域控角色的开关写错成standalone server后面samba-tool domain provision会直接拒绝。dns forwarder指向本机是因为域控通常自带 DNS转发给上游解析。ntlm auth那行是血泪经验Stretch 上默认值收紧后一批老打印机和扫描仪连不上共享改成ntlmv2-only能兼容大部分设备实在不行才降到yes但那等于放开 ntlmv1安全性打折能不用就不用。3.2 脚本的配置文件怎么填这套脚本一般会读一个独立的配置文件把域控地址、管理员凭据、备份目录集中管理而不是硬编码在脚本里。常见做法是在脚本目录下放一个samba4.conf权限600# 脚本配置文件示例权限必须收紧 cat /usr/local/sbin/samba4-scripts/samba4.conf EOF # 域控主机名或 IP DC_HOSTdc01.example.lan # 域管理员账号不要用 root DC_ADMINAdministrator # 备份输出目录确保磁盘空间足够 BACKUP_DIR/backup/samba4 # sysvol 源路径 SYSVOL_PATH/var/lib/samba/sysvol # 保留最近几份备份 KEEP_DAYS7 EOF chmod 600 /usr/local/sbin/samba4-scripts/samba4.confDC_HOST填域控的 FQDN 或 IP脚本里smbclient连的就是它DC_ADMIN用域管理员而不是本地 root因为samba-tool的域操作认的是域账户。BACKUP_DIR要提前mkdir -p并确认剩余空间sysvol 里全是策略文件和脚本体积不大但文件数多rsync同步时 inode 消耗比空间更值得关注。KEEP_DAYS7是保留策略脚本按天打目录超过 7 天的自动清理这个值按你的合规要求改别拍脑袋写 30 又忘了磁盘只有 20G。3.3 域控初始化与脚本首次运行如果这台机器还没 provision先跑域控初始化再让脚本接管备份。初始化命令在两个版本上基本一致但域名和密码要一次写对# 停止服务后做域控初始化域名按实际改 systemctl stop smbd nmbd winbind samba-tool domain provision \ --use-rfc2307 \ --realmEXAMPLE.LAN \ --domainEXAMPLE \ --server-roledc \ --dns-backendSAMBA_INTERNAL \ --adminpassYourStrongPassw0rd! # 把生成的 krb5.conf 放到系统位置 cp /var/lib/samba/private/krb5.conf /etc/krb5.conf # 启动服务并设为开机自启 systemctl unmask samba-ad-dc systemctl enable samba-ad-dc systemctl start samba-ad-dc--use-rfc2307让 Samba 在 AD 里存 Unix 属性后面和 Linux 客户端对接时省事--dns-backendSAMBA_INTERNAL用内置 DNS不依赖外部 bind单机域控首选。--adminpass的密码要满足复杂度太简单会直接报错退出。初始化完krb5.conf必须拷到/etc/否则kinit和samba-tool的域认证会失败。服务名是samba-ad-dc而不是smbd这点在 Debian 上容易搞混systemctl start smbd起的是普通文件服务域控要走samba-ad-dc。初始化通过后再跑脚本的备份子命令做首次验证# 首次手动跑备份观察输出 /usr/local/sbin/samba4-scripts/backup-sysvol.sh --config /usr/local/sbin/samba4-scripts/samba4.conf # 看备份目录是否按日期生成 ls -lh /backup/samba4/脚本正常会打印同步了多少文件、打包到哪个 tarls能看到类似20250101/的日期目录。如果卡在smbclient认证先回头查samba4.conf里的DC_ADMIN和密码再确认kinit Administrator能不能拿到票据。4. 避坑与排查五条装完才发现的坑4.1 现象smbclient 报 NT_STATUS_CONNECTION_REFUSED原因多半是服务没起对。Debian 上 Samba 4 域控的服务单元是samba-ad-dc很多人习惯性systemctl start smbd结果smbd起来了但域控端口 389、445 的监听不全。解决是先systemctl status samba-ad-dc看状态再ss -tlnp | grep -E 389|445确认端口没监听就systemctl restart samba-ad-dc还不行看journalctl -u samba-ad-dc -n 50里的具体报错。4.2 现象备份出来的 sysvol 恢复后权限全乱原因是rsync没带 ACL 和扩展属性参数。sysvol 里的组策略依赖 ACL 决定谁能读普通rsync -a只保留基本权限ACL 和xattr全丢。解决是脚本里同步命令必须带-AX# 保留 ACL 和扩展属性sysvol 备份必须带 -AX rsync -aAX --delete $SYSVOL_PATH/ $BACKUP_DIR/$TODAY/sysvol/-A保留 ACL-X保留扩展属性--delete让备份和目标严格一致。少了-AX恢复时samba-tool不报错但客户端访问策略会莫名其妙被拒排查起来非常玄学。4.3 现象Stretch 上老设备连不上共享原因是 4.5 的ntlm auth默认只允许 ntlmv2老设备只会 ntlmv1。解决是在[global]里显式写ntlm auth ntlmv2-only先试仍不行才临时改yes并在改完后用smbclient -L从老设备侧验证。改yes等于放开弱认证只在内网隔离环境用用完记得改回。4.4 现象脚本跑一半报 command not found原因是脚本用了 bash 特性但被 dash 解释或者依赖包没装全。解决是先head -n 1确认 shebang 是#!/bin/bash再bash -n script.sh做语法检查最后dpkg -l | grep -E rsync|smbclient确认依赖在。Debian 的/bin/sh是 dash直接sh script.sh跑 bash 脚本必翻车。4.5 现象备份目录越积越大磁盘告警原因是KEEP_DAYS设太大或清理逻辑没生效。解决是先du -sh /backup/samba4/*看每天体积再确认脚本的清理分支真的在跑——有些脚本把清理写在if里但条件写反了。我一般会额外加一条 cron 兜底# 每天凌晨 2 点备份3 点清理 7 天前目录 0 2 * * * /usr/local/sbin/samba4-scripts/backup-sysvol.sh --config /usr/local/sbin/samba4-scripts/samba4.conf /var/log/samba4-backup.log 21 0 3 * * * find /backup/samba4 -maxdepth 1 -type d -mtime 7 -exec rm -rf {} \;cron 里重定向日志别省出问题时/var/log/samba4-backup.log是唯一的黑匣子。5. 装完怎么验证三条命令确认真的跑通装完不等于跑通我一般用三条命令做收尾验证缺一条都不算完。第一条验域控本身第二条验脚本备份产物第三条验恢复可用性——备份不验证恢复等于没备份。# 1. 域控健康检查看域信息能否正常拉出 samba-tool domain level show samba-tool domain info 127.0.0.1 # 2. 备份产物检查日期目录、文件数、tar 完整性 ls -lh /backup/samba4/ find /backup/samba4/$(date %Y%m%d) -type f | wc -l tar -tzf /backup/samba4/$(date %Y%m%d)/sysvol.tar.gz /dev/null echo tar ok # 3. 恢复演练解到临时目录比对关键文件 mkdir -p /tmp/sysvol-restore tar -xzf /backup/samba4/$(date %Y%m%d)/sysvol.tar.gz -C /tmp/sysvol-restore diff -r /var/lib/samba/sysvol /tmp/sysvol-restore/sysvol | headsamba-tool domain level show能打印出 domain 和 forest 的功能级别说明域控数据库可读domain info连本机 127.0.0.1 能返回域信息说明 LDAP 和内部 DNS 链路通。第二步的find | wc -l给出文件数和源目录find /var/lib/samba/sysvol -type f | wc -l对比数量对不上就是同步漏了tar -tzf只列不解能过说明包没损坏。第三步的diff -r是最实在的验证解出来的 sysvol 和源目录比对没有输出或只有时间戳差异才算过。下面这张表是我验证时对照用的出问题按行排查验证项命令通过标准失败先看域控服务systemctl status samba-ad-dcactive (running)journalctl -u samba-ad-dc端口监听ss -tlnp | grep -E 389|445有 LISTEN服务是否起对域信息samba-tool domain info 127.0.0.1返回域 DNkrb5.conf路径备份文件数find ... -type f | wc -l与源目录一致rsync是否带-AX包完整性tar -tzf ... /dev/null无报错磁盘空间、gzip恢复比对diff -r 源 解压目录无实质差异ACL、路径拼接有一次我只跑了前两条就以为万事大吉结果三个月后真要恢复时发现 tar 里少了Policies子目录——原因是脚本里rsync的源路径末尾少了斜杠同步的是目录本身而不是内容。从那以后我每次装完这套脚本都强制把上面三条验证走一遍尤其是diff -r那步宁可多花五分钟也不想在真出事时才发现备份是空的。希望帮到你。本文还有配套的精品资源点击获取

相关推荐

表格控件中树形数据展示:拍平算法与交互实现
表格控件中树形数据展示:拍平算法与交互实现

简介:面向C# WinForms开发者的实用示例资源,聚焦DataGridView控件本身不支持树形结构这一常见痛点,演示如何通过自定义数据模型、扩展控件行为与事件处理,在表格中模拟出可展开折叠的层次化展示效果,适合已掌握WinForm… · 2026/11/2 12:51:48

回合制游戏源码解析:战斗循环、技能结算与二次开发实战
回合制游戏源码解析:战斗循环、技能结算与二次开发实战

简介:这份资源面向Java初学者与游戏开发入门者,提供一套回合制游戏核心逻辑的源码实现,帮助理解如何用面向对象思想搭建轮流行动的战斗框架。包内以Java源码文件为主,围绕游戏管理器、士兵与Boss三类角色展开:管理器负… · 2026/11/2 12:51:48

OPC Server快速开发包实战:从协议栈到可交付服务
OPC Server快速开发包实战:从协议栈到可交付服务

简介:OPC Server Rapid Development Toolkits 是一套面向工业自动化软件开发者的 OPC 服务器快速开发工具包,适合具备初级编程水平、希望在 Visual C 或 Visual Basic 环境中快速构建 OPC DA 服务器而无需深入 ATL/DCOM 与 OPC 协议细节的开发者。资源完… · 2026/11/2 12:51:48

RAID技术详解:从原理到实战选型指南
RAID技术详解:从原理到实战选型指南

1. RAID技术概述与核心价值RAID(Redundant Array of Independent Disks)技术自1988年由加州大学伯克利分校提出以来,已成为存储领域的基石技术。这项技术通过将多个物理磁盘组合成逻辑单元,实现了数据存储的性能提升和可靠性保障的… · 2026/11/3 6:02:12

股票交易算法:动态规划与贪心策略实战
股票交易算法:动态规划与贪心策略实战

1. 买卖股票的最佳时机问题解析股票交易问题是算法领域的经典题型,也是技术面试中的高频考点。这个问题看似简单,却蕴含着动态规划、贪心算法等核心思想。作为C开发者,掌握这类问题的解法不仅能提升算法能力,更能培养对实际业务场… · 2026/11/3 6:02:12

2nm工艺与200Tbps交换机的网络架构革新
2nm工艺与200Tbps交换机的网络架构革新

1. 项目背景与核心挑战在数据中心网络架构演进的前沿,2nm制程工艺与200Tbps交换容量的结合正在重新定义核心交换机的性能边界。这个被称为"全尺度参数宇宙构建框架"的项目,本质上是在探索超大规模网络设备的极限设计方法论。我最近参与的一个高… · 2026/11/3 6:02:12

网络操作系统安全知识地图:系统家族、安全机制与访问控制
网络操作系统安全知识地图:系统家族、安全机制与访问控制

简介:这份PPT课件面向计算机、网络工程等专业的学生及刚接触系统安全的学习者,系统梳理网络操作系统安全的基础知识框架,帮助读者建立从操作系统类型认知到访问控制机制的整体理解。内容围绕三部分展开:常用网络操作系统简介&… · 2026/11/3 6:02:12

网络安全黄金岗位解析与职业发展指南
网络安全黄金岗位解析与职业发展指南

1. 网络安全行业全景扫描网络安全早已不是简单的防火墙和杀毒软件,它已经演变成一个覆盖技术、管理、法律等多维度的复合型领域。根据我十多年的行业观察,当前网络安全人才缺口高达300万,而每年相关专业毕业生不足3万,这种供需失衡… · 2026/11/3 6:02:12

Univer:可嵌入的国产文档协同引擎SDK
Univer:可嵌入的国产文档协同引擎SDK

1. 项目概述:Univer 是什么,它解决的不是“又一个表格组件”,而是协同编辑底层能力的重构Univer 这个名字乍一听像某个开源项目代号,但如果你最近在技术社区、前端团队或企业级办公软件选型讨论中频繁看到它,大概率不是… · 2026/11/3 6:01:12

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码