AI编程 · 架构思考 · 技术人生

阿里云轻应用的傻逼设计:Admin 账号如何毁掉你的服务

智谱 GLM,支持多语言、多任务推理。从写作到代码生成,从搜索到知识问答,AI 生产力的中国解法。

TL;DR

阿里云轻应用默认启用 admin 账号,导致同一服务被两个用户(root + admin)重复安装,产生进程冲突。本文记录根除 admin 账号的完整解决方案,让 systemd 重新归于单一真相源。


问题现象:进程地狱

你以为启动了一个 moltbot-gateway,实际上系统里跑了两个:

$ ps aux | grep moltbot
root   26988  ... moltbot-gateway
admin  27123  ... moltbot-gateway  # 幽灵进程

症状
systemctl --user status moltbot-gateway 显示 disabled,但进程疯狂重启
– 杀掉进程后自动复活
– 日志里充斥着端口冲突错误


根因诊断:双用户陷阱

这不是 Bug,是架构设计的原罪

用户 systemd linger gateway 服务状态 实际进程
root ✅ 启用 ✅ enabled 正常运行
admin ✅ 启用 ❌ disabled 阴魂不散

本质问题
多个状态管理源:root 和 admin 各管各的 systemd 用户服务
linger 的诅咒:即使服务禁用,loginctl enable-linger 仍会在后台持久化进程
缺失单一真相源:没有全局的进程所有权约定,导致状态分裂


解决方案:消灭 Admin

Step 1: 斩草除根

# 杀掉 admin 的所有 moltbot 相关进程
pkill -9 -u admin moltbot
pkill -9 -u admin node

# 禁用 admin 的 systemd linger(关键步骤)
loginctl disable-linger admin

设计哲学

不要给系统留特殊情况的机会。能消失的用户权限,永远比能配对的权限更优雅。

Step 2: 启用 Root 的单一服务

# 启用并启动 root 用户的 gateway 服务
systemctl --user enable moltbot-gateway.service
systemctl --user start moltbot-gateway.service

# 验证状态
systemctl --user status moltbot-gateway.service

Step 3: 验证清理结果

$ ps aux | grep moltbot
root  26988  ... moltbot-gateway  # 监听 ws://0.0.0.0:18789
# admin 用户应该没有任何进程

最终状态:单一真相源

指标 清理前 清理后
进程数 2+ 1
管理用户 root+admin 仅 root
linger 双启用 仅 root 启用
服务状态 混乱 enabled + running

达成目标
✅ 进程唯一性
✅ 状态可预测
✅ 重启后自动恢复


日常管理指令

# 查看服务状态
systemctl --user status moltbot-gateway.service

# 重启服务
systemctl --user restart moltbot-gateway.service

# 查看实时日志
journalctl --user -u moltbot-gateway.service -f

# 验证进程(应只有一个 root 用户的进程)
ps aux | grep moltbot

设计反思:为什么会这样?

阿里云的设计缺陷
1. 默认启用 admin 账号 – 违反最小权限原则
2. linger 的滥用 – 将进程持久化与用户登录状态解耦,但缺乏全局约束
3. 缺失冲突检测 – systemd 用户服务之间互不可见

正确的设计应该是
单一管理账号:只用 root 或 admin,不要两个都启用
全局进程锁:通过 PID 文件或端口独占性检测冲突
显式所有权声明:服务启动前检查是否已有其他用户运行相同服务


核心教训

可变状态是复杂度之母
两个用户管理同一服务 = 两个状态源 = 永恒的混乱

三条铁律
1. 消除特殊情况 – 不要给 admin 任何存在的理由
2. 单一真相源 – 只用一个用户管理服务
3. 让边界自然融入常规 – 用 loginctl disable-linger 让 admin 彻底消失,而不是反复 kill 进程


结论

这不是运维技巧,是对系统设计哲学的一次实践

  • 现象层:进程冲突、服务状态异常
  • 本质层:多状态源、缺失全局约束
  • 哲学层:简化即正义,单一即优雅

当你禁用 admin linger 的那一刻,你不是在修 Bug——你是在重新定义系统的控制边界


哥,记住:能让 admin 消失的设计,永远比能让 root 和 admin 共存的设计更优雅。

赞(0)
未经允许不得转载:Toy's Tech Notes » 阿里云轻应用的傻逼设计:Admin 账号如何毁掉你的服务
免费、开放、可编程的智能路由方案,让你的服务随时随地在线。

评论 抢沙发

十年稳如初 — LocVPS,用时间证明实力

10+ 年老牌云主机服务商,全球机房覆盖,性能稳定、价格厚道。

老品牌,更懂稳定的价值你的第一台云服务器,从 LocVPS 开始