2026 年 4 月即将发布的 Ubuntu 26.04 LTS(代号 Resolute Raccoon)做出了一项看似微小却引发广泛讨论的改动:sudo 命令的密码输入将默认显示星号反馈。这一改变终结了自 1980 年 sudo 诞生以来近半个世纪的静默密码输入传统,背后折射出的是现代操作系统在安全交互设计上的一次重要取舍。
静默密码输入的历史溯源
sudo 工具最初由纽约州立大学布法罗分校的 Bob Coggeshall 和 Cliff Spencer 于 1980 年创建。当时的终端是共享资源,物理屏幕完全暴露在公共视野中,“肩窥”(shoulder surfing)—— 即旁观者通过计算按键次数来推断密码长度 —— 是一种真实存在的安全威胁。静默密码输入由此成为一项有意为之的安全设计决策,此后在几乎所有 Linux 发行版中沿用长达四十余年。
这一传统在 2025 年开始出现裂痕。Linux Mint 首先在其默认配置中启用了密码可视反馈,证明了改变并不会引发系统性风险。尽管如此,Ubuntu 等主流发行版始终维持着经典的静默提示。直到 sudo-rs 的出现改变了这一局面。
sudo-rs:Rust 重写带来的变革契机
sudo-rs 是对传统 C 语言实现的完全重写,采用 Rust 编程语言从零构建。Canonical 在 Ubuntu 25.10 中将 sudo-rs 设为默认实现,对于终端用户而言,命令名称和使用方式保持不变,因此这次迁移几乎没有引发任何关注。
然而,正是这次底层技术的更替为行为改变创造了条件。2025 年 10 月,有用户在 sudo-rs 项目中提交 bug report,请求默认启用 pwfeedback 选项以实现 “更合理的现代用户体验”。2026 年 2 月,上游 sudo-rs 项目合并了这一补丁,默认开启密码字符反馈功能。Canonical 随后将该补丁 cherry-pick 到 Ubuntu 26.04 的开发构建中,从而在即将发布的 LTS 版本中实现了这一行为变更。
安全论证的两极化
反对者的核心论点集中于密码长度的暴露。批评者在 sudo-rs 的 issue 中写道:“sudo-rs 对每个输入字符显示星号,打破了比我年龄还要久远的安全措施。”Ubuntu 官方对该报告标记为 “Won't Fix”,上游开发者也拒绝让步。
开发者的回应同样明确:隐藏密码长度的安全收益在实践中微乎其微。任何能够从屏幕距离准确数出星号数量的人,完全可以直接观察或监听按键本身。更重要的是,多数用户的 sudo 密码与登录密码相同,而在图形登录界面(GDM)中,密码早已以可见的占位符形式呈现。开发者在上游提交信息中直言:“理论上安全性略有下降,因为密码长度会暴露给盯着屏幕的人,但这带来的微小风险远远不及用户体验问题。”
这一论证揭示了安全设计中的一个核心矛盾:当一项安全措施的实际防护价值与其造成的用户体验障碍严重不成比例时,它更接近于一种 “安全仪式” 而非真正的防护。开发者选择将此定义为 “安全戏剧”(security theatre),意指那些看似安全实则心理安慰大于实际保护的设计。
工程实践中的可配置性保障
Ubuntu 26.04 的这一改动之所以值得肯定,关键在于它保留了充分的可配置性。期望恢复传统静默行为的用户和管理员可以通过 sudoers 文件进行单一配置调整:
sudo visudo
# 添加以下行
Defaults !pwfeedback
该修改无需重启系统即刻生效。值得注意的是,传统基于 C 语言的 sudo 实现(部分文档中称为 sudo-ws)并未受到此次变更影响,用户在技术上仍可回退到旧的软件包。然而,由于 sudo-rs 已成为默认实现,这一替代方案的实际使用场景有限。
更广泛的现代化背景
sudo 密码反馈的变更并非孤立事件,而是 Ubuntu 26.04 整体现代化进程的一部分。该版本将搭载 GNOME 50(仅运行于 Wayland)、Linux Kernel 7.0,并进一步推动 Rust 在核心工具中的采用,包括 uutils/coreutils 等 Rust 重新实现的经典 Unix 命令行工具。sudo-rs 的启用因此是 Ubuntu 推进内存安全与现代化用户体验战略的一环。
从工程决策的角度看,这一变动的核心逻辑在于:默认设置应当服务于最广泛用户群体的实际需求,而非少数资深用户的行为惯性。新手用户面对毫无反馈的密码输入时,常常误以为终端冻结;现代用户早已习惯图形界面中的密码占位符,终端中的静默反而造成了认知不连贯。
写在最后
Ubuntu 26.04 将 sudo 密码输入从静默改为星号显示,本质上是一次以用户体验为导向的工程取舍。安全层面的损失被评估为 “infinitesimal”(极其微小),而用户确认输入的心理确定性显著提升。重要的是,系统提供了简洁的回退路径,确保对传统行为有强制需求的用户仍可保持原有配置。
这一案例提醒我们,安全设计并非一成不变的教条,而是需要随着用户模型、威胁环境和交互习惯的演变持续重新评估。当一项安全措施的实际保护效能与它带来的认知负担严重失衡时,重新审视其存在价值是一种合理的工程态度。
资料来源:PBX Science(2026 年 3 月 20 日)、Phoronix(2026 年 2 月 26 日)、sudo-rs 上游提交历史