Linux忘记root密码:rd.break重置与GRUB密码加固

发布时间:2026/10/26 2:42:40
Linux忘记root密码:rd.break重置与GRUB密码加固 凌晨两点被电话叫起来说一台跑着老业务的机器必须重启可 root 密码在上一任负责人交接前就没人记得了机器还躺在机房角落带外管理口的管理员账号也没人知道。这种场景一点都不稀奇。能救你的只有两件事怎么在不知道密码的前提下把 root 密码重置掉以及重置完怎么防止下一个人用同样的手法再来一遍。前者靠的是引导参数rd.break和init/bin/bash后者靠的是给 GRUB 配置密码超级用户加 PBKDF2 哈希。这两个动作看起来一个是在破、一个是在补其实它们共用同一条链路——谁能碰到 GRUB 菜单谁就拿到了这台机器的根权限。这篇文章把两件事分开讲透前半段是重置 root 密码的完整可复现步骤以及每一步背后的原因后半段是给 GRUB 上锁的几种做法、参数取舍与验证方法最后再把我这些年踩出来的坑一次性倒干净。刚接手服务器的新手可以照着做要把这套动作写进运维规范的老手也能从里面挑到能用的细节。1. 谁能碰到 GRUB 菜单谁就是 root很多人对物理安全的理解停留在机房门有锁但只要有人能在开机画面出现的那几秒敲一下键盘这台机器上的所有账户体系都是纸糊的。理解这一点后面所有操作才有意义。1.1 从按下电源键到拿到 shell有三个可以插手的关口第一个关口在固件层。BIOS 或 UEFI 里可以改启动顺序把 U 盘、光驱或者网络引导排到硬盘前面从而完全绕过硬盘上的操作系统用一个外部系统挂载你的磁盘/etc/shadow想怎么改就怎么改。这个口子只能靠固件管理员密码加启动顺序锁来堵。第二个关口在引导加载器层也就是 GRUB。GRUB 的菜单界面允许按e编辑当前启动项的配置而内核命令行本身就是一台 Linux 系统启动时最重要的输入参数之一。改几个字系统的启动行为就完全变了。这个口子是本文后半段的重点。第三个关口在内核和 initramfs 层。系统启动早期跑的是一段极简的用户态代码负责把真正的根文件系统挂起来。这段代码执行前后都有明确的停点rd.break就是一个断点参数init/bin/bash则是直接换掉 1 号进程。两个参数都不需要任何身份验证写在命令行上就生效。三个关口是串联关系任意一个不设防整条链就断了。而现实是绝大多数机器只有第一个关口设了防甚至没设第二个第三个完全裸奔。1.2 重置密码和给 GRUB 上锁必须成对做只做前者不做后者等于你花两小时救回来的机器下一个能接触到它的人用同样的方法二十分钟就能接管。只做后者不做前者更惨——你锁上了门钥匙在自己手里但你还没进门。所以顺序不能反先把机器进得去重置 root 密码再把门锁上配置 GRUB 密码最后验证锁是真的锁上了。我见过好几次倒着操作的加完密码重启发现启动菜单要验证自己又不知道密码只能回头用安装介质救援白白多折腾一轮。还有一点容易被忽略给 GRUB 上锁这件事本质上是提高门槛不是建立边界。它挡住的是随手按e的人挡不住把硬盘拆下来挂到另一台机器上的人。真正的边界是磁盘加密加上固件密码GRUB 密码只是这套组合里的一个环节。1.3 把防护层次和它挡住的对象列清楚防护手段挡住谁挡不住谁实施成本GRUB 超级用户密码在机房随手改内核参数的人从外部介质启动的人、拆盘的人低一条命令固件管理员密码 启动顺序锁想改启动顺序、想进固件设置的人会拆机箱短接跳线的人低但要逐台设置磁盘加密LUKS拆走硬盘后挂到别处读取的人已经在系统内拿到 shell 的人中重装或迁移时做机箱锁 / 机柜锁 / 机房门禁一切物理接触有合法权限的内部人员中属于管理手段带外管理口独立口令借远程控制台做手脚的人拿到带外管理权限的人低但极易被遗忘这张表我一般会直接放进交接文档里。因为它解释了一个非常关键的事实这五层里最容易被忘记维护的恰恰是最后一行。多少机器 root 密码管得严严实实带外管理口还是出厂默认口令一条远程 KVM 就能看到开机画面前面四层全部作废。2. 重置 root 密码的两条路线与它们的真实差别真到了要动手的时候你会面临一个选择用rd.break还是用init/bin/bash。网上教程混杂写这两条路的文章都很多但很少有文章讲清楚为什么会有两条路、什么情况下该选哪条。2.1 先解决停不住菜单这个前置问题要改内核参数前提是能看到 GRUB 菜单。企业级发行版默认会显示一个几秒倒计时的菜单按任意方向键就能停住。但有些机器被优化过GRUB_TIMEOUT0或者开了菜单隐藏一眨眼就过去了。这时候的手法是在固件自检画面结束、系统刚开始引导的一两秒内连续敲Esc或者按住Shift逼 GRUB 把菜单吐出来。用带外远程控制台的话这一两秒的窗口很容易错过建议提前把控制台窗口开好或者干脆连按几十下Esc。停住菜单之后按e进入编辑界面。界面里会有一堆以linux、linux16或者linuxefi开头的行——不同版本、不同固件下名字不一样。真正的内核命令行就在这一行它通常会跨好几行显示用\续行光标移动用的是方向键。要改的位置在这行的末尾加一个空格再加参数别插到中间去中间是rootUUID...、ro这类关键参数改坏了就起不来。提示在编辑界面里如果找不到linux开头的那一行往下翻。有些系统的菜单项里有多个内核默认光标停在第一个改错了启动项等于白改。2.2 rd.break 路线在 initramfs 里改真实系统这是目前最通用的一条路从 7 到 9 都适用。核心思路是让启动流程在切换到真实根文件系统之前停下来此时真实的根分区已经被挂载到/sysroot但还没有被切换成/系统里的各种服务、账户验证机制都没跑起来是一个绝对干净的操作环境。在内核命令行末尾追加rd.break按CtrlX或者F10启动系统会停在switch_root:/#提示符下。接下来的操作顺序是有讲究的# 1. 真实根此时是只读挂载必须重新挂成可写 mount -o remount,rw /sysroot # 2. 把根切到真实系统这一步之后 passwd 改的才是真的 /etc/shadow chroot /sysroot # 3. 重置密码会提示输入两次 passwd root # 4. 关键一步告诉系统下次开机重新给所有文件打 SELinux 标签 touch /.autorelabel # 5. 退出 chroot再退出 initramfs系统继续启动 exit exit第一步的remount,rw是整条链上最容易漏的。漏了的后果不是报错而是passwd执行到最后一步突然来一句Authentication token manipulation error看起来像是密码策略问题其实只是写不进去。第二步的chroot同样不能省。不chroot直接passwd你改的是 initramfs 里那个临时环境的密码文件重启之后影子都没有。第四步的touch /.autorelabel是最容易被跳过、后果最隐蔽的一步。原因在于执行passwd的时候SELinux 的安全策略还没有加载新生成的/etc/shadow拿到的安全上下文是错的通常落到了unlabeled_t之类的位置。等系统正常启动、SELinux 策略加载完毕登录程序去读shadow文件时会被策略直接拒绝表现就是密码明明改对了登录界面却一直提示认证失败或者干脆登录后一堆服务起不来。/.autorelabel这个空文件的唯一作用就是让系统在下次启动时把所有文件的安全上下文重刷一遍。代价是这次重启会很慢。文件多的机器上跑十几分钟甚至半小时都正常期间屏幕上会滚动大量重打标签的日志。别以为卡死了就去强行断电那才是真的把系统搞坏。2.3 init/bin/bash 路线更直接但对状态没保障另一条老牌路是把内核命令行改成这样rw init/sysroot/bin/shrw让根分区直接以可写方式挂载init把 1 号进程换成 shellsystemd 完全不参与。启动后会直接掉到一个 shell 里此时根已经是真实系统的根不需要chrootpasswd root touch /.autorelabel exec /sbin/reboot -f最后那行用exec是必须的。因为此时系统没有 init 进程接管普通的reboot命令依赖 systemd 或 SysV 的服务管理机制调不通exec会用重启程序替换掉当前的 shell 进程让 1 号进程直接变成关机流程这才是干净的退出方式。这条路的坑比rd.break多。一是rw参数不写、或者写的位置不对根还是只读的passwd一样报错二是init/sysroot/bin/sh里的路径写错比如写成/bin/sh那是 initramfs 里的 shell系统起不来也没提示只能看着黑屏发呆三是这条路完全绕过了 initramfs 的正常流程某些依赖早期挂载的目录比如/proc可能没准备好一些工具会行为异常。2.4 两条路怎么选对比项rd.breakinit/bin/bash或 /sysroot/bin/sh停在哪里initramfs 中真实根挂载后、切换前直接以真实根为根shell 当 1 号进程根分区初始状态只读需remount,rw /sysroot取决于是否加rw加了就是可写是否需要 chroot需要不需要需要重打 SELinux 标签需要需要适合的系统版本各主流版本通用兼容性最好偏老的版本或特定场景出错后的可恢复性高退出后仍走正常启动流程低容易停在半路没有提示我个人的默认选择首选只在rd.break有异常时作为备选我的习惯是默认走rd.break因为它把临时环境和真实系统分得很清楚每一步都在你的控制之内出问题也能看懂发生了什么。init/bin/bash更像是一把没有保险的枪熟练的人用着快不熟的人一枪打自己脚上。2.5 改完密码之后必须验证的四件事很多人改完密码就急着reboot然后ssh上去试一下能登就完事了。我建议多花三十秒做四项检查能省掉后面几小时的排查。第一用新密码在控制台登录一次不是在 SSH 里。控制台登录路径和远程登录路径在 PAM 层面会有差异而且键盘布局不一样密码里有特殊符号的时候尤其明显。第二检查 SELinux 状态和影子文件的标签。登进去之后执行ls -Z /etc/shadow正常应该是system_u:object_r:shadow_t:s0。如果显示unlabeled_t或者admin_home_t说明重打标签没生效得手动补一次restorecon -v /etc/shadow。同时看一眼getenforce和最近的审计日志确认没有出现一批新的拒绝记录。第三确认重启过程完整走完了标签重刷。看/.autorelabel这个文件是否已经消失或者检查启动日志里有没有重打标签的记录。如果文件还在说明那一轮没跑完下次重启还得再等一遍。第四把新密码记到该记的地方并当场验证记录是可用的。密码托管、变更单、交接文档三个地方写一遍然后从托管系统里把密码读出来再登一次。我见过抄错一位字符、三天后才发现的情况那时候已经没人记得原始输入是什么了。3. 给 GRUB 上锁的三种做法与参数取舍补完了破该说补了。GRUB 的密码保护有几个不同的实现层次混在一起讲很容易晕我把它们拆成三条独立的路。3.1 三种GRUB 密码其实不是一回事第一种是固件管理员密码存在于 BIOS 或 UEFI 里和操作系统完全无关管的是能不能进固件设置、能不能改启动顺序。设了它别人就不能拿 U 盘抢先启动。第二种是 GRUB 的超级用户密码存在 GRUB 自己的配置文件里管的是能不能编辑启动项、能不能进 GRUB 命令行。这才是本文要配的东西。第三种是某些发行版安装器里那个给引导加载器加密码的勾选项本质上是帮你执行了第二种只是把操作包装了一下。日常沟通里大家统称GRUB 密码但排查问题的时候一定要分清楚是哪一种否则会出现我明明设了密码为什么还能改启动顺序这种对话。3.2 用 grub2-setpassword 一步到位最省事的做法就一条命令grub2-setpassword执行后会提示输入两次密码然后这个工具会把一个 PBKDF2 哈希写进/boot/grub2/user.cfg并且通常会顺带重跑一次配置生成。看看生成的内容cat /boot/grub2/user.cfg内容长这样GRUB2_PASSWORDgrub.pbkdf2.sha512.10000.9F2A....一长串这串东西是密码经过 PBKDF2 加盐迭代算出来的反推不出原文。文件权限建议收紧到只有 root 可读chmod 600 /boot/grub2/user.cfg为什么用 PBKDF2 而不是直接把密码写进配置文件因为 GRUB 的配置文件在很多环境下是可读的明文密码写在那里等于没设。PBKDF2 的迭代次数上面那串里的10000意味着暴力尝试的成本被放大了上万倍攻击者即使拿到哈希也很难在合理时间内还原。这里有一个非常关键的机制需要搞清楚这个方案默认只锁编辑和命令行不锁正常启动。原因是发行版的菜单生成脚本会给自动生成的启动项加上--unrestricted标记日常开机选默认项直接进系统不需要输密码但一旦按了e想改内核参数或者按了c想进 GRUB 命令行就会先要求输入用户名和密码。这个设计非常实用。生产机器上如果连启动都要人守着输密码那远程重启、自动化脚本、无人值守的机房全部瘫痪。不过要注意grub2-setpassword会不会自动重跑配置生成不同版本表现不完全一致。我的建议是不要假设它做了改完自己验证一遍或者干脆手动再跑一次配置生成命令确认grub.cfg里确实出现了超级用户相关的行。3.3 用 grub2-mkpasswd-pbkdf2 手动控制写入位置如果需要更精细的控制比如指定超级用户名、给不同的启动项设置不同的访问策略、或者把保护写进自定义菜单项就走手动这条路。第一步生成哈希grub2-mkpasswd-pbkdf2按提示输两次密码会输出类似grub.pbkdf2.sha512.10000.1A2B3C...的字符串复制下来。第二步把它写进自定义配置片段。不要去直接改/boot/grub2/grub.cfg——那个文件是生成出来的下次跑配置生成就覆盖了。正确的位置是/etc/grub.d/40_customvim /etc/grub.d/40_custom在文件末尾追加两行set superusersroot password_pbkdf2 root grub.pbkdf2.sha512.10000.1A2B3C...set superusers定义谁是超级用户password_pbkdf2给这个用户绑密码哈希。用户名不一定是root但用root最不容易和系统账户混淆排查时也直观。第三步重新生成主配置文件grub2-mkconfig -o /boot/grub2/grub.cfg这一步看似简单但它有一个非常容易踩的坑BIOS 引导和 UEFI 引导的主配置文件路径不一样。先确认系统的引导方式[ -d /sys/firmware/efi ] echo UEFI || echo BIOS引导方式主配置文件路径BIOS / Legacy/boot/grub2/grub.cfgUEFI/boot/efi/EFI/厂商目录/grub.cfgUEFI 机器上如果照着老教程往/boot/grub2/grub.cfg生成命令会成功、文件会更新、看起来一切正常但重启之后密码压根不生效——因为 GRUB 读的是 EFI 分区里那一份。我就被这个坑耍过一次排查了半小时才发现写错了地方。不确定目录名的话直接ls /boot/efi/EFI/看一眼就知道了。3.4 --unrestricted 的取舍锁编辑还是锁启动前面提到自动生成的菜单项带了--unrestricted如果想把启动这一步也锁上就得把这个标记去掉。手动写的菜单项长这样不带--unrestricted就是要密码menuentry Custom Entry --class gnu-linux { linux /vmlinuz-... root/dev/mapper/xxx ro initrd /initramfs-....img }带上就是正常启动免密menuentry Custom Entry --class gnu-linux --unrestricted { ... }我的实际建议是生产环境保留--unrestricted把力气花在固件密码和启动顺序锁定上。理由很现实如果连启动都要密码那么一次计划内重启就得有人在机房或者带外控制台前面守着带外控制台的键盘输入还有延迟输错三次更是灾难批量重启脚本会在第一个节点就卡死然后你会收到一串告警。真正需要连启动都锁的场景其实很窄高安全等级的离线机器、放在半公开区域的设备、或者合规要求明确写了引导需认证的环境。这些环境下守着输密码是可以接受的成本那就去掉--unrestricted。3.5 内核升级会不会把密码配置冲掉这是被问得最多的一个问题。答案是看你把配置写在了哪里。如果把set superusers和password_pbkdf2直接写进了/boot/grub2/grub.cfg那内核一升级、包管理器一重跑配置生成这两行就没了密码保护静默失效——最危险的就是这种失效了但没人发现的状态。如果写在/etc/grub.d/40_custom里或者用的是grub2-setpassword生成的user.cfg配置生成脚本会自动去读它那么每次重跑配置生成都会重新带上去内核升级也不会丢。所以判断标准很简单配置文件里那两行是不是手写进最终产物的。是的话就有风险。顺带说一句升级内核之后建议做一次抽查grep -c superusers /boot/grub2/grub.cfg返回 0 就说明配置丢了赶紧补。这个检查放进例行的变更后验证清单里成本几乎为零。3.6 验证的唯一可靠方式去菜单里真的按一下 e配置文件改完、grep也确认了但这都只是看起来对。真正可靠的验证是重启一次在菜单上按e看它是不是弹出认证提示。验证的时候注意几点输错密码的表现应该是直接被踢回菜单而不是放你进去输入正确的用户名和密码之后编辑界面正常出现按Esc或CtrlC能退出编辑回到菜单然后正常启动不受影响。这个验证必须在维护窗口里做。因为万一配置写坏了导致菜单加载失败机器是起不来的需要有救援介质在手边。我一般会把安装镜像挂在带外控制台的虚拟光驱上再重启这样出问题能立刻进救援模式不用跑去机房。4. 那些教程里不会写、但几乎一定会遇到的坑下面这些全是实操里撞出来的按发生频率排序。4.1 passwd 报 Authentication token manipulation error这个报错几乎是密码重置环节的头号杀手而且它对应至少四种完全不同的根因必须逐个排查。排查顺序我一般是这样# 1. 根分区是不是真的可写 mount | grep / # 2. 磁盘是不是满了满了就写不进去 df -h / # 3. shadow 文件是不是被加了不可变属性 lsattr /etc/shadow # 4. 影子文件本身的权限和属主对不对 ls -l /etc/shadow第一种情况最常见忘了mount -o remount,rw /sysroot或者init/bin/bash路线下没加rw参数。第二种情况在日志目录爆掉的机器上很典型。第三种是有人做过安全加固给/etc/shadow加了chattr i这时候需要先chattr -i /etc/shadow改完再考虑要不要加回去。第四种是文件权限被改坏了正常应该是root:root且权限000或0000。4.2 密码改对了却登录不进去这种情况我遇到过三次两次是 SELinux 标签问题一次是键盘布局问题。SELinux 那两次的共同特征是控制台输密码后光标卡一下然后重新回到登录提示没有任何错误信息日志里能看到一批avc: denied记录。原因就是前面说的——passwd在策略未加载的环境下生成的新shadow文件标签不对登录程序读不了它。补救方式是在救援环境里执行chroot /sysroot restorecon -v /etc/shadow /etc/passwd /etc/group或者更干脆touch /.autorelabel再来一次完整重打标签。键盘布局那次更搞笑密码里带了一个在 GRUB 的编辑界面和某些控制台环境下键盘映射是美式布局而操作者用的是其他布局输进去的字符是别的。表现就是我明明输对了。所以密码策略里最好明确禁止在关键账户密码里使用那些在不同键盘布局下位置不同的符号或者至少在设置完之后用最简单的纯字母数字密码先验证一次登录再改复杂。4.3 加了密码之后自动化流程全线卡住这个坑的杀伤力被严重低估。加完 GRUB 密码一段时间后某个批量重启脚本开始超时监控报警一片红排查半天发现是机器停在 GRUB 的认证提示上等人的输入。根因通常是脚本或者带外管理工具触发了重启而机器上恰好有一个需要认证才能选的启动项比如某些手工加的menuentry没带--unrestricted或者 BIOS 升级后启动项顺序变了默认项变成了需要认证的那一个。处理思路是先确认到底是哪个启动项被选中了再看那个启动项有没有--unrestricted。修法就是给它加上或者调整GRUB_DEFAULT让它默认选免密的那一项。这也印证了前面的建议在需要频繁无人值守重启的机器上不要锁启动只锁编辑。4.4 忘了 GRUB 密码怎么救别急着重装系统。思路和重置 root 密码完全一致既然物理接触就能绕过那就绕过它。用安装介质启动进救援模式让安装器把系统根分区挂到/mnt/sysimage然后chroot /mnt/sysimage rm -f /boot/grub2/user.cfg # 如果配置是写在 40_custom 里的就去改那个文件 grub2-mkconfig -o /boot/grub2/grub.cfguser.cfg一删配置生成脚本读不到密码就不会生成超级用户那一行密码保护就解除了。UEFI 机器上还要同步处理 EFI 分区里的那一份。另一个更粗暴但同样有效的办法把硬盘拆下来挂到另一台机器上直接删文件。当然这要求你能接触到硬件并且会拆。4.5 重打 SELinux 标签跑不完或者跑得极慢大盘机器上一次完整重打标签可能要跑半小时以上中间屏幕滚动大量日志看起来像卡死。判断方法是看/.autorelabel文件是否还在只要还在就说明任务没结束。如果实在等不了比如业务有停机窗口限制可以退一步只重打关键目录在救援环境里执行load_policy -i加载策略然后restorecon -Rv /etc只处理配置目录。这样几秒钟就能完成风险是其他目录如果也有类似问题不会被发现。这是一个权衡不是推荐做法。还有一种情况重打标签过程中断电重启后系统可能起不来因为部分文件标签是新的、部分是旧的。这时候必须再用救援模式跑一次完整的重打别指望它能自愈。4.6 磁盘加密和 GRUB 密码的先后顺序用了 LUKS 的机器上启动流程是固件 → GRUB 菜单此时要 GRUB 密码→ 选内核 → initramfs 里提示输入磁盘口令 → 解密 → 正常启动。所以两套密码是串联的谁都绕不过去。这个组合的强度比单用任何一个都高得多GRUB 密码挡住了改内核参数磁盘加密挡住了拆盘读取两者互补。但也带来一个运维上的麻烦——一次重启要输两次密码且顺序不能错。做无人值守重启的方案时要同时考虑这两层否则你解决了 GRUB 那一关还是会卡在磁盘口令上。5. 把这两个动作固化成可复用的流程单次操作能成功不算本事能稳定重复、能交接给下一个人、出问题时能快速定位才算。5.1 一次密码变更应该留下什么我的习惯是留一张四行的记录不多写但每条都有用记录项内容要求为什么需要变更原因交接缺失 / 定期轮换 / 人员离职半年后回看时能判断这次变更的性质影响范围单机 / 同批次机器 / 某个业务集群出问题时能快速圈定排查范围验证方式控制台登录成功 / 服务正常 / 关键任务跑通避免改完就算完回退方案救援介质位置 / 备用账户 / 带外管理口地址真出事的时候不用现找最后一行最容易被省略但它是唯一能在紧急时刻救命的一行。我现在的做法是每次变更前先把救援介质的挂载方式确认一遍确认能挂上再动手。5.2 一个开机前自检的小脚本把检查项写成脚本每次变更后跑一遍比凭记忆靠谱得多#!/bin/bash echo 引导方式 [ -d /sys/firmware/efi ] echo UEFI || echo BIOS echo GRUB 主配置路径 if [ -d /sys/firmware/efi ]; then ls -l /boot/efi/EFI/*/grub.cfg 2/dev/null else ls -l /boot/grub2/grub.cfg fi echo 超级用户配置是否存在 grep -h superusers /boot/grub2/grub.cfg /boot/efi/EFI/*/grub.cfg 2/dev/null || \ echo 警告未发现 superusers 配置 echo user.cfg 权限 ls -l /boot/grub2/user.cfg 2/dev/null || echo 未使用 user.cfg echo root 账户是否有可用密码 awk -F: $1root{print ($2!!||$2*)?警告root 密码未设置:root 密码已设置} /etc/shadow echo SELinux 状态 getenforce echo shadow 文件标签 ls -Z /etc/shadow脚本本身没什么技术含量价值在于把我大概记得检查过变成每次都跑同一套检查。有几个检查项平时根本想不到比如superusers那一条——内核升级后它静默消失的概率不低靠人肉记忆去grep是不现实的。5.3 在测试机上把整个流程走两遍这话听起来像废话但确实有用。密码重置这个动作第一次做的时候要对着文档一步步来中间还要查命令、确认路径二十分钟能做完算快的。而在真实故障场景里你往往是在半夜、在压力下、在业务负责人的催促中操作这时候靠的是肌肉记忆。我自己的训练方式是找一台测试机先把 root 密码改成一个随机串然后不看文档从重启开始计时走完rd.break全套流程目标是把时间压到三分钟以内。然后紧接着做第二遍——给它配上 GRUB 密码重启验证e键被拦住再删掉user.cfg恢复。两遍走下来这套动作就变成条件反射了。注意所有演练都在测试环境做。生产环境上第一次执行陌生操作不管文档多详细都属于高风险行为。最后再分享一个我觉得挺值的小习惯把rd.break和init/sysroot/bin/sh这两个参数连同mount -o remount,rw /sysroot、touch /.autorelabel这几条命令存在手机上或者打印一张卡片贴在机柜门内侧。真到断网、带外控制台只有个黑屏字符界面、脑子一片空白的时候那张卡片比任何文档都好使。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询