1. 一个人,三十年:Sudo 的权力巅峰与财务困境
自 1993 年起,Todd C. Miller 几乎以一己之力扛起了sudo(su \"do\") 的开发与维护大旗。作为 *nix 架构中不可或缺的权限提权工具,sudo承载了全球数以亿计的服务器、嵌入式设备及桌面系统的安全边界。
然而,现实是残酷的。在 Quest Software 结束长达 14 年的资助后,这位三十年的老兵正面临"断粮"危机。目前,sudo的维护仅靠零星的个人捐赠支撑,这与它作为全球基础设施的地位极不匹配。
{#section path-to-node="6"}
2. 技术债与内存安全的幽灵
长期以来,基于 C 语言编写的sudo一直在与内存安全风险作斗争。
-
Baron Samedit (CVE-2021-3156):2021 年爆发的堆缓冲区溢出漏洞,让攻击者能直接从普通用户越权获取 Root 权限。令人心惊的是,该代码逻辑已在内核中潜伏超过 10 年。
-
逻辑复杂度:随着功能的堆砌(如 LDAP 集成、复杂的
sudoers解析逻辑),代码库的审计压力呈指数级增长。
{#section-1 path-to-node="9"}
3. Sudo-rs 的崛起:Rust 正在接管权限控制
面对传统 C 语言实现的结构性缺陷,ISRG (Internet Security Research Group) 发起了sudo-rs项目,旨在用内存安全的 Rust 语言重写这一核心组件。
技术现状对比:
| 特性 | 经典 Sudo (C) | Sudo-rs (Rust) |
|---|---|---|
| [内存安全]{path-to-node="12,1,0,0"} | [依赖开发者严谨性,易发溢出漏洞]{path-to-node="12,1,1,0"} | [编译器级别保证,消除常见内存错误]{path-to-node="12,1,2,0"} |
| [兼容性]{path-to-node="12,2,0,0"} | [工业级标准,支持极其复杂的配置]{path-to-node="12,2,1,0"} | [快速追赶,已满足大多数生产环境需求]{path-to-node="12,2,2,0"} |
| [发行版支持]{path-to-node="12,3,0,0"} | [所有 Linux/Unix 发行版标配]{path-to-node="12,3,1,0"} | [Ubuntu 25.10 (2025年10月)已切换为默认]{path-to-node="12,3,2,0"} |
4. XZ 阴影下的"继任者"难题
Todd Miller 在求助中特别提到了对继任者的担忧。2024 年发生的XZ Utils 后门事件(Jia Tan 通过长期"潜伏"骗取信任)给所有核心开源维护者敲响了警钟。
在缺乏资金支持的情况下,引入新维护者不仅是技术交接,更是对信任链条的严峻考验。如果没有可靠的组织背书或全职资金支持,sudo很难在不引入安全风险的前提下完成权力的平滑更替。
{#section-2 path-to-node="16"}
{#section-3 path-to-node="16"}
💡 LeisureLinux 深度观察
sudo的危机并非孤例,从 OpenSSL 到 XZ,再到今天的 Sudo,互联网的底层架构正建立在极其脆弱的"志愿者体系"之上。
对于我们技术从业者而言,关注sudo-rs的迁移方案固然重要,但更应反思:当企业享受着开源软件带来的低成本红利时,是否也该为这些"权力基石"的基础设施支付一份"安全保费"?