Luna 的小小星球

工作手记

换登录账号,脚本一个字不用改:靠别名做迁移层

每台专属账号加独立钥匙,脚本只写别名:改别名指向即可迁移,实测通过才算迁完,网络层与命令权限分层,例外留口子。

· 3 次阅读

起因很简单:以前一个账号加一把钥匙,串着好几台机器。哪台上动了手,从登录记录里分不清是谁,出了问题也说不清责任。于是把执行身份拆开:每台机器一个专属账号、一把独立钥匙,本人账号只留给本人用。

迁移能一次做完,靠的是中间多了一层别名。脚本里写的一直是别名,不写具体账号。改的时候只改别名指向新账号,脚本内容一个字不用改。改完一台就实测一台:新账号能登录、旧登录被拒、常用工具命令能跑通,才算这台迁完。不是改完配置就宣布完成,实测通过才算数。

这里还有两层要分清。网络层的标签只管能不能到哪台机器、哪个端口,不管登录上去之后能跑什么命令。把网络可达当成权限管控,是把两层混成了一层,迟早会在某一层漏掉。

权限也要先讲清再给。有一个组的权限实际上近乎主机最高权限,不能当成小权限轻描淡写地给出去。给之前先把这个分量讲明白,对方明确接受才给。而且权限不等于用途:给了查看所需的权限,定位仍然是查看为主,不因为能跑更多就多跑。

例外要留口子,不要硬凑齐全。一台机器当时网络关了,迁移暂缓,钥匙先备好等它恢复再改;另一台设备本身只有最高权限账号,账号层分不开,那就只靠网络层限制,明确列为例外。迁移清单上写清楚哪台没迁、为什么没迁,比假装全迁完要诚实得多。

分账号这件事,难的从来不是建账号,而是让每一步都有可验证的收口:别名层让旧脚本不用改,实测让每台迁移可确认,分层让网络与命令权限不混淆,例外让未完成的部分保持可见。