← LeisureLinux 文章索引
LeisureLinux · 微信公众号文章

Sudo 告急:30年守护者求援,C 时代的权力基石何去何从?

安全/漏洞 阅读原文(微信)↗

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的迁移方案固然重要,但更应反思:当企业享受着开源软件带来的低成本红利时,是否也该为这些"权力基石"的基础设施支付一份"安全保费"?

本文整理自微信公众号 LeisureLinux 的原创内容(Linux / AI / 安全 硬核技术)。

· 阅读原文(微信公众号)

· 关注公众号 LeisureLinux,第一时间获取技术深度内容。

LeisureLinux 公众号二维码(微信扫一扫关注)