Linux passwd命令全面解析:账户安全、密码策略与常见排障实践
在Linux系统管理里干得越久越会发现一个规律越是天天用的基础命令越容易被人低估。passwd命令就是最典型的例子。绝大多数人对它的理解停留在给自己改个密码这个层面但实际上它承担着Linux账户安全体系里最核心的认证信息管理职责——改密码、锁账户、设置过期策略、强制重置背后都是这一个命令。这篇文章我不打算只念man手册而是把我自己从入门到负责多台服务器账户管理的实操经验完整摊开passwd的正确用法、它背后的权限模型和文件机制、踩过的坑以及对应的排查思路。无论你是刚摸到Linux命令行的新人还是需要批量管理账户的运维都可以对照这篇内容直接上手。1. 为什么Linux账户安全绕不开passwd1.1 一个命令三层身份passwd表面上是设置密码但它实际干的事情比这复杂得多。它会根据当前执行者的身份来决定允许做什么、不允许做什么这套规则背后是Linux最基本的权限模型。普通用户只允许修改自己的密码而且必须先输入原始密码验证身份。这一步没什么可讨价还价的root之外的任何用户都绕不过去。管理员root可以修改任意用户的密码不需要知道该用户原来的密码也不需要输入任何旧密码。这是提权操作也是日常运维里最常用的场景。系统服务用户比如运行数据库或Web服务的专用账户通常无法直接登录。但通过passwd -S可以查看它们的密码状态配合passwd -l可以彻底锁死这些账户防止有人趁虚而入。我见过不少新手试图用vi直接打开/etc/shadow去改密码理由很简单哈希不就在这个文件里吗我替换掉不就行了技术上确实可行但实际环境里几乎没人这么干原因有三层。第一/etc/shadow的权限极其敏感默认只有root能读普通用户连看都看不到更别说改了。第二密码哈希的算法和格式有严格约定——$6$代表SHA-512$y$代表新版yescrypt老系统还有$1$的MD5手改文件时哪怕漏掉一个字符整行失效这个账户就再也登不进去了。第三也是最重要的直接改文件会绕过PAM、密码策略、审计日志等一系列机制出了问题连排查线索都没有。passwd命令存在的意义就是给这些底层操作提供一个安全、可靠、带完整校验的封装接口。1.2 密码不是存起来的是算出来的理解passwd命令之前得先弄明白Linux到底是怎么存密码的。很多人以为是明文存在某个文件里这是最危险的误解。实际上/etc/shadow里存的是密码的哈希值——一段由密码经过不可逆算法计算出来的固定长度字符串。登录时系统做的事情是把你输入的密码用同样的算法再算一遍然后和shadow文件里存的哈希做比对。哈希加密算法本身是不可逆的也就是说就算攻击者拿到了shadow文件也无法直接还原出原始密码只能靠暴力字典去撞。这种设计意味着一个很现实的问题密码本身的强度直接决定了整个认证体系的安全下限。passwd命令修改密码时会调用系统的密码质量检查组件PAM体系里的pam_pwquality模块对长度、字符种类、重复度做校验。这就是为什么有时候你设置123456会被系统一脸嫌弃地拒绝——不是命令故意刁难你而是它身后站着一整套密码策略。我用一个生活化的类比哈希算法就像一台碎纸机密码进去变成一堆纸屑系统只保存纸屑的模样。你下次登录时把新打印的密码再塞进去看碎出来的纸屑是不是一模一样。碎纸机不可逆但比对结果却可以100%确定。passwd命令就是这台碎纸机前面那个带身份验证的操作员。2. 基本用法拆解报错、选项和日常操作2.1 普通用户修改自己的密码最基础也是最容易出错的一步普通用户登录系统后直接执行passwd不带任何参数系统就会进入交互流程。它会先要求你输入当前密码再让你输入两次新密码。这里有几个细节是新手最容易栽跟头的。第一输入新密码时屏幕不会有任何回显连星号都没有。很多人以为键没生效其实是在正常输入只是系统主动屏蔽了显示。这个行为继承自/etc/login.defs里的终端回显配置是防偷窥的常规做法。第二两次输入新密码不一致时系统会提示passwords do not match然后要求重新走一遍流程而不是只让你重新输入第二遍。我见过不少人在这里反复纠结以为是自己的键盘出了问题其实只是两次打的内容不一样。第三新密码必须在短时间内完成设置。如果超过一定时间通常是几秒到几十秒取决于PAM配置整个流程会超时终止需要重新执行命令。这是防止终端被占着、密码被晾在屏幕上的安全策略。普通用户修改自己的密码时如果设置的密码太简单、太短、或者和用户名太相似同样会被PAM策略拦下来。比如在默认的passwd配置下你设置纯数字的8位密码大概率会收到类似BAD PASSWORD: it is too simplistic/systematic的提示。这时候不要硬刚系统老实用一个满足复杂度要求的密码更明智。2.2 管理员修改指定用户密码一次性搞定root和运维的日常作为root给某个用户改密码非常简单passwd username执行后系统会直接提示输入新密码不会要求输入旧密码。如果你在输入用户名时拼写错误系统会提示user username does not exist所以执行之前先确认一遍账户名总没错。这里有一个非常实用的小技巧。脚本批量改密码时可以用--stdin选项从标准输入读取密码实现非交互式修改echo NewPassword2025! | passwd --stdin username但要注意--stdin不是所有发行版都支持。我在CentOS和RHEL上用得很顺手但换成某些基于Debian的系统时passwd会直接忽略这个选项命令静默失败。这时候我一般改用chpasswdecho username:NewPassword2025! | chpasswdchpasswd是另一个专门用于批量更新密码的工具它支持从标准输入读取用户名:密码格式的多行内容特别适合脚本里批量重置多个账户的场景。还有一个操作要提醒千万别在生产环境长期使用--stdin配合明文密码写在脚本里。脚本文件如果权限配置不当任何一个能读到文件的用户都等于拿到了所有密码。我的习惯是脚本执行完立刻清理历史记录脚本文件权限至少设为700并且定期轮换这些账户的密码。2.3 选项速查表一张表讲清楚常用参数选项作用典型使用场景注意事项-d删除密码配合锁定策略让账户完全无法密码登录删密码后账户极不安全非必要不用-l锁定账户员工离职、临时停权锁定是在哈希前加!不是删除密码-u解锁账户恢复被锁定的账户只对-l加的锁生效对因过期自动锁定的账户无效-e使密码立即过期强制用户下次登录改密码和chage -d 0行为一致-x设置密码最大有效天数落实密码定期更换策略与/etc/login.defs里的PASS_MAX_DAYS对应-n设置密码最小修改间隔防止用户改了又马上改回旧密码配合-x一起使用才成体系-w设置过期前警告天数提前提醒用户换密码默认通常是7天-i设置不活跃天数密码过期后多久彻底锁定账户超过该天数后必须管理员介入-S查看密码状态快速检查账户锁定/过期情况字段含义见下文别只看第一个字符-S的输出很多人看不懂这里举个例子username P 03/13/2024 0 99999 7 -1从左往右依次是用户名、密码状态、上次修改日期、最小修改间隔、最大有效天数、警告天数、不活跃天数。第二个字段只有三种取值P表示可用L表示被-l锁定NP表示没有设置密码。我排查账户问题时第一条命令永远是passwd -S因为它能在一行内告诉我这个账户的密码处于什么状态省得去翻shadow文件。3. 用passwd管理密码生命周期过期、锁定与强制修改3.1 账户锁定-l与-u的真实行为passwd -l username锁定账户这件事本身不复杂但我需要讲清楚它底层做了什么因为这会直接影响你后面解锁的方式。执行-l后系统会在/etc/shadow里该用户密码哈希的最前面加上一个!字符。密码哈希一旦变成!$6$...这样的形式系统在做比对时就会因为这个!而直接判定不匹配等于作废了原来的密码。账户因此无法再用密码登录。这里有个很关键的点-l并没有删除密码哈希只是用!把它临时停用了。所以对应的-u操作就是把那个!去掉恢复原来的哈希密码也就恢复了。你可以用passwd -S确认带锁的账户会显示L解锁后恢复为P。但实际操作中我经常遇到另一种情况账户不是被-l锁的而是因为密码过期太久、超过-i设置的不活跃天数后被系统自动锁定的。这种锁定在shadow文件里的表现是过期时间字段早已超过当前日期而不是哈希字段带!。这时候你去执行passwd -u系统会冷酷地回你一句Account is locked具体提示因发行版而异然后什么都不做。正确的处理方式是先重置密码或修改过期日期。比如先passwd username设置一个新密码再用chage -E -1 username清除账户过期日或者用chage -I -1 username把不活跃天数设为无限制。我把这两种锁定叫手动锁和策略锁处理逻辑完全不同这个区分在排查问题的时候能省下很多时间。老实说passwd -l这个命令在阻止用户登录这件事上并不是彻底的。如果用户的SSH登录方式是密钥认证而服务器又没有限制PermitRootLogin和PasswordAuthentication那么即使密码被锁用户依然可以靠密钥登录。所以锁密码只是第一道闸真正要禁止账户登录还得配合usermod -L或者直接修改SSH配置。运维里没有一招鲜的说法多层防护才是常态。3.2 密码过期与强制修改让新用户第一件事就是改密码新入职的同事要开一个账户管理员可以先给它一个临时密码然后用一条命令让这个密码作废强制对方首次登录时修改passwd -e username-e的作用是把上次修改密码的日期直接设为1970年1月1日。系统看到这个日期会认定密码早在半个世纪前就该换了于是强制用户登录成功后立刻进入改密码流程。这和chage -d 0 username是等价的。这个机制在实际使用中有个顺滑的体验用户用SSH登录时会收到类似WARNING: Your password has expired. You must change your password now and login again!的提示然后被引导进入修改密码的交互界面。改完密码后原连接会被断开用户需要用新密码重新登录一次。这是正常流程不是故障。批量开户时我通常把这几条组合在一起写进初始化脚本# 创建用户并设置临时密码 useradd -m -s /bin/bash username echo TempPass2025 | passwd --stdin username # 强制首次登录修改密码 passwd -e username # 设置密码策略最长90天提前7天警告过期后30天禁用 passwd -x 90 -w 7 -i 30 username这里有个细节要特别说明passwd -x、-w、-i设置的策略最终写进的是用户在/etc/shadow里对应字段的值而不是修改/etc/login.defs里的全局默认值。全局策略对所有新建用户生效而passwd -x这类命令只对指定用户生效两者是全局默认个体覆盖的关系。3.3 与chage命令的分工提到密码过期和策略就不能不提chage。它和passwd在密码生命周期管理上的分工一直是很多人搞不清楚的地方。简单来说passwd侧重当前状态的改变——改密码、锁账户、让密码马上过期chage侧重时间策略的查看和设置——密码什么时候到期、账户什么时候失效。它们的操作目标虽然是同一个shadow文件里的字段但打开的角度不同。我日常用得最多的其实是chage -lchage -l username这条命令会列出该用户完整的密码时效信息上次改密时间、最短间隔、最长有效期、警告天数、不活跃天数、账户过期日期。这些信息在passwd -S里被压缩成了一行紧凑输出chage -l则用人类友好的格式展示排查用的首选。设置策略时两者其实可以互相替代passwd -x 90和chage -M 90是同一件事。我个人习惯是临时性操作比如今晚就让某个账户过期用passwd系统性的策略梳理比如月底巡检所有账户的过期日期用chage -l。命令本身没有高下之分关键是哪个用起来更顺手、更不容易出错。4. 换密码背后的文件系统passwd、shadow和login.defs如何协作4.1 shadow字段逐段拆解执行完passwd之后到底改了什么答案都在/etc/shadow里。这个文件每一行对应一个用户用冒号分成9个字段绝大多数情况下我们只需要关注前几个。拿一条示例来说明username:$6$randomsalt$hashvalue:19254:7:90:7:30:19450:第一个字段是用户名没什么好说的。第二个字段是密码哈希前面说的!锁定标记也加在这里。第三个字段是上次改密的日期单位是从1970年1月1日起的天数所以passwd -e做的事情就是把这个数字改成0。第四个字段是最短修改间隔天数第五个是最大有效天数第六个是过期前警告天数第七个是过期后不活跃天数第八个是账户绝对过期日期同理也是天数最后一个字段是保留位。这套字段设计得非常简洁但它把密码管理的所有时间维度都覆盖了。你可以回头看passwd -S的输出就是把这几个字段压缩成了更紧凑的格式。所以假如哪天passwd -S的输出让你摸不着头脑又不想看man手册直接打开/etc/shadow对照这个结构逐段读反而是最直观的。需要记住的一个操作纪律正常路径永远不要手动编辑/etc/shadow。这个文件如果格式损坏会直接影响所有账户的登录认证甚至导致整个系统无法登录。真有特殊需求要么用系统提供的vipw命令它会加文件锁并校验格式要么老老实实用passwd、chage这些正规工具。我见过不止一次因为拖拽/替换shadow文件导致系统彻底无法登录的案例最后只能通过救援模式修复代价相当大。4.2 密码哈希是怎么算出来的当passwd写入新密码时系统会调用crypt()库函数把密码和一个随机盐值salt一起送进哈希算法。这个过程有几个要点值得说清楚。第一每次生成哈希都会用不同的随机盐值。哈希算法虽然不可逆但如果没有盐值相同密码在不同用户身上会生成完全相同的哈希攻击者只要破解一次就能批量撞库。加了随机盐之后即使两个用户的密码一模一样shadow文件里存的哈希也完全不同。这个设计大大增加了字典攻击的难度。第二哈希算法的选择是有进化的。早期Linux用DES后来升级到MD5再后来是SHA-512现在新发行版已经在转向yescrypt。你可以从哈希字符串的前缀一眼看出算法类型$1$是MD5$5$是SHA-256$6$是SHA-512$y$是yescrypt。如果我维护的服务器上有用户的哈希还是$1$开头我会认为那是历史遗留账户需要重点关注。第三更快的算法不等于更好的算法。对登录认证来说哈希计算耗时控制在几十到几百毫秒是有意的设计——太快了反而容易让攻击者暴力破解上万次。你可能会觉得登录时有点慢这恰恰是安全性的代价。4.3 login.defs决定默认策略执行passwd时系统怎么知道新密码至少要多少位、或者密码最长能用多久答案有一部分在/etc/login.defs里。这个文件里有一组和密码策略直接相关的参数PASS_MAX_DAYS 90 PASS_MIN_DAYS 7 PASS_WARN_AGE 7它们定义了新建用户时默认继承的密码时效策略。比如PASS_MAX_DAYS 90意味着新用户90天后密码必须更换PASS_MIN_DAYS 7则是两次修改密码至少间隔7天防止用户改完密码立刻又改回原来的。但有个容易踩坑的地方PASS_MIN_LEN最小密码长度在大多数现代系统上已经不会生效了。原因是密码复杂度校验已经被PAM体系接管由/etc/pam.d/passwd里的pam_pwquality模块负责而它读的配置文件是/etc/security/pwquality.conf不是login.defs。如果你还在login.defs里改PASS_MIN_LEN然后惊讶地发现怎么改都不起作用这就是原因。pwquality.conf里的核心参数包括minlen最小长度、dcredit数字字符要求、ucredit大写字符要求、lcredit小写字符要求、ocredit特殊字符要求、maxrepeat最大重复字符数等。其中dcredit -1表示密码里必须包含至少一个数字如果设为正数则表示最多允许出现多少个数字。默认情况下这些参数在很多发行版里是注释掉的需要管理员按需放开。我要提醒的是策略是你业务安全的底线但也是可用性的敌人。我见过有些团队为了满足合规把密码复杂度拉满结果员工把密码贴在显示器上。一套合理的密码策略应该至少保证长度不低于12位包含三种以上字符类型禁止连续重复字符同时定期轮换。总结成一句话让机器挡下最基础的攻击别让用户崩溃到把密码抄在便利贴上。5. 实战排查passwd命令最常见的报错场景5.1 Authentication token manipulation error先看文件权限再看磁盘这个报错应该是passwd命令里最让我印象深刻的一个了因为它的出现时机总是很微妙——一般在生产环境、在你有急事的时候。先解释这句话本身认证令牌操作失败听着很抽象其实就是系统在更新密码信息时失败了。常见原因按出现频率排序是这样的。第一/etc/shadow或/etc/passwd文件被意外设置成了只读。我曾经在加固服务器时执行过chattr i /etc/passwd来防止篡改结果后续改密码时就开始报这个错。用lsattr检查一下两个文件的权限位如果看到i属性chattr -i去掉即可。第二磁盘空间满了。/分区打满时任何文件写入都会失败shadow文件也不能幸免。df -h看一眼把空间释放出来再试。第三PAM配置环节出了问题。/etc/pam.d/passwd这个文件如果被改坏或者相关的pam_unix.so库文件被误动一样会报错。这种相对少见但排查起来最费劲得翻/var/log/secure或/var/log/auth.log看具体日志。第四SELinux打开且安全上下文搞乱了。如果前面几条都查完没问题建议看一下ausearch -m AVC -ts recent里有没有SELinux拒绝记录。临时用setenforce 0验证一下是否是SELinux导致的但别长期关着。我给一个通用的排查链路先看lsattr和ls -l确认文件权限再看df -h确认磁盘然后tail认证日志看有没有PAM报错最后才考虑SELinux。这个顺序我总结为从最可能的开始从最便宜的验证开始。5.2 PAM策略拦截说好的8位密码怎么老被拒另一个常见的问题其实是系统在认真履行职责。很多用户设置密码时被passwd拒绝给出的提示是:BAD PASSWORD: The password is too short BAD PASSWORD: The password fails the dictionary check这不是bug是pam_pwquality模块在干活。它按照/etc/security/pwquality.conf里的规则逐项检查你的密码长度够不够、字符种类全不全、有没有连续重复、是不是和用户名过于相似。任何一个不满足都会拒绝。遇到这种情况我的建议分两步走。第一步先确认这个密码是不是真的不行——比如只有8位纯数字、或者包含了用户名。如果确实不行换一个更复杂但自己记得住的密码别和系统对着干。第二步如果是团队的安全策略调整后误伤了很多账户那就得考虑在pwquality.conf里微调参数把过于严苛的项放开。比如把minlen从12降到10或者把maxrepeat从2放宽到3让策略更符合实际使用场景。这里我要特别提一句不要为了跳过策略检查去改PAM配置让密码走旁路。有些教程会教你直接绕过pam_pwquality把passwd命令背后的校验模块删掉这在我眼里就是自废武功。密码策略是系统抵御暴力破解的第一道防线绕过它就等于把大门敞开。5.3 忘记root密码的救援流程最后的兜底方案总有人会把root密码忘掉或者某次加固之后把所有钥匙都锁在了保险柜里。这种情况下的兜底方案有几种但它们都有一个共同前提你能物理接触到这台服务器或者至少有控制台级别的访问权限。在系统启动时进入GRUB菜单按e编辑内核启动项在linux那一行末尾加上rd.break针对CentOS/RHEL系列它会让你进入一个临时根环境或者直接加single进入单用户模式部分发行版适用。挂载根文件系统后用chroot进入真正的系统环境执行passwd root这是一个完全正常、在所有Linux系统管理文档里都有记载的恢复流程。重置密码后记得处理SELinux的重标记问题在启用SELinux的系统上需要创建一个/.autorelabel文件然后重启。说句实在话在服务器上准备一张离线救援盘、或者提前把GRUB的进入方式记录下来会大大减少你半夜抢险的痛苦。我自己的习惯是每一台重要服务器都会在机房的密码管理箱里留一份救援速查卡上面写着这台服务器的GRUB启动流程、键盘布局特殊设置、以及进入救援模式后最常用的几条命令。卡片丢失的风险看起来不高但真到用的时候没有那就只能对着屏幕抓瞎了。一些经验之外的补充passwd命令的边界感最后再多说两句我自己在长期使用中的体会。第一passwd命令解决的是密码本身的问题但很多系统问题不是密码能解决的。比如用户明明输入了正确密码却被拒绝登录可能是SSH配置禁用了密码登录可能是PAM的account模块判定账户过期甚至可能是/etc/nologin文件的存在阻止了所有非root用户登录。这时候你拼命去改密码是没用的先确认问题到底出在哪一层再决定要不要动passwd。第二尽量让passwd的变更走正规渠道。如果是企业环境改密码这类操作最好和工单系统、审计系统联动。命令本身会写审计日志但谁在什么时间为什么改了这个账户的密码这些信息只能靠流程去覆盖。工具再强也只是工具真正决定安全性的是使用工具的人有没有一套完整的操作规范和风险意识。第三多花几分钟验证能省下后面几个小时。我每次批量重置密码后都会挑几个账户用passwd -S和chage -l确认状态然后挑一个账户实际登录一次。看似多花了时间但比起夜里被用户喊醒说我密码改了但登不上去这点成本完全可以忽略。passwd命令没有太多花哨的操作但它横跨了密码安全、账户生命周期、PAM认证和系统排障多个领域。把这篇文章里的细节吃透你在Linux账户管理上就基本不会遇到解决不了的问题了。

相关新闻

DDPG+PyTorch实现机械臂动力学闭环控制

DDPG+PyTorch实现机械臂动力学闭环控制

简介:本资源是一份面向机器人控制与强化学习方向研究者及高年级本科生的深度技术文档,聚焦PyTorch框架下DDPG算法在机械臂轨迹规划中的落地实践,系统解决动力学建模、策略训练与仿真验证等核心难点。全文48页PDF结构严谨,含八大章…

2026/10/13 7:24:02 阅读更多 →
52页PPT背后的电厂数字化转型实施路径

52页PPT背后的电厂数字化转型实施路径

简介:本资源是一份面向电力行业信息化建设者、发电集团数字化转型负责人及能源领域技术决策者的专业级解决方案PPT,系统阐述智慧电厂从自动化到智能化的五阶段演进路径,并直击传统电厂在设备运维、过程控制、实时计算与信息孤岛等方面的现实痛…

2026/10/13 7:23:02 阅读更多 →
工业物联网IoT平台建设方案:从四层架构到落地避坑指南

工业物联网IoT平台建设方案:从四层架构到落地避坑指南

简介:工业物联网IoT平台建设方案PPT,面向工业物联网、智能制造与数字化转型领域的方案架构师、项目经理及运维人员,系统梳理了基于IIoT的设备数据感知、采集、传输、处理与应用路径,并结合多协议支持转换、快速开发工具、组态化拖…

2026/10/13 7:23:02 阅读更多 →

最新新闻

OpenClaw接入飞书完整指南:事件订阅、回调配置与消息链路避坑实践

OpenClaw接入飞书完整指南:事件订阅、回调配置与消息链路避坑实践

把 OpenClaw 接到飞书上这件事,我前后折腾了两轮,第一轮卡在飞书事件订阅的 challenge 验证上,第二轮卡在回调超时上。等把整条链路跑通之后回头一看,真正难的不是 OpenClaw 本身,而是飞书开放平台那一堆“看起来简单、…

2026/10/13 8:04:29 阅读更多 →
自动化测试用例编写指南:从筛选到稳定维护

自动化测试用例编写指南:从筛选到稳定维护

做测试这行时间久了,你会遇到一个挺常见的现象:团队刚开始搞自动化的时候,热情都特别高,平台选好了,环境搭好了,测试用例也翻译了一大批。可跑了三两轮,问题就来了——用例时不时闪一下红&#…

2026/10/13 8:04:29 阅读更多 →
深入理解Java自定义注解:从底层机制到敏感字段脱敏处理器实战

深入理解Java自定义注解:从底层机制到敏感字段脱敏处理器实战

自定义注解这个事儿,我最早接触是在某跨平台系统的服务端项目里。当时接口返回给前端的字段,有一部分涉及用户隐私,每次序列化前都要写一大段脱敏逻辑,一个接口里换个字段名就得复制粘贴改一遍,代码又臭又长。后来花了…

2026/10/13 8:04:28 阅读更多 →
如何把 PS2 游戏库压成 CHD:3 条命令指南,省下 60% 磁盘空间

如何把 PS2 游戏库压成 CHD:3 条命令指南,省下 60% 磁盘空间

如何把 PS2 游戏库压成 CHD:3 条命令指南,省下 60% 磁盘空间 【免费下载链接】romm A beautiful, powerful, self-hosted ROM manager and player. 项目地址: https://gitcode.com/GitHub_Trending/rom/romm 4.4GB 的 PS2 ISO,压完只剩…

2026/10/13 8:04:28 阅读更多 →
MiniMax M3上线NVIDIA Vera Rubin:大模型新硬件适配与推理优化实战

MiniMax M3上线NVIDIA Vera Rubin:大模型新硬件适配与推理优化实战

1. 从一次模型部署的“卡顿”说起:为什么硬件适配总在踩坑前阵子帮一个做多模态应用的朋友排查推理延迟的问题,现象很典型:同一套模型权重,在A卡上跑得好好的,换到B卡上吞吐直接掉了一半,显存占用还莫名其妙…

2026/10/13 8:04:28 阅读更多 →
Docker搭建MySQL 8.0主从复制(GTID+ROW模式)实战

Docker搭建MySQL 8.0主从复制(GTID+ROW模式)实战

1. 项目概述:为什么现在还要亲手搭MySQL主从?“Docker搭建基于binlog的MySQL主从同步”——这标题里藏着三个关键信号:容器化、数据一致性、实时复制能力。不是用云数据库一键开启高可用,也不是靠中间件兜底,而是回归底…

2026/10/13 8:03:28 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/12 18:11:17 阅读更多 →