Ubuntu 26.04 LTS 引入密码反馈星号:一场 Linux 历史争论
Ubuntu 26.04 LTS (代号 Resolute Raccoon) 将于 2026 年 4 月 23 日发布,其最大的改变之一是 sudo 命令密码提示将显示星号 (*) 反馈,取代过去几十年来的空白提示。这一小小的用户体验改进引发了 Linux 社区一场罕见的激烈辩论。
历史背景:沉默的密码
sudo 命令最初由 Bob Coggeshall 和 Cliff Spencer 于 1980 年在纽约州立大学水牛城分校创建。最初的设计理念是在共享终端环境下,通过隐藏密码长度来防止“肩窥”攻击(即通过观察键盘输入猜测密码)。这种沉默的密码提示延续了近半个世纪。Linux Mint 曾率先在自己的配置中默认启用密码反馈,但主流发行版,包括 Ubuntu,一直坚持使用经典空白提示。
sudo-rs 的崛起:Rust 重写规则
Ubuntu 引入这一改变的关键在于 sudo-rs,一个用 Rust 语言从头重写 sudo 命令的替代版本。自 Ubuntu 25.10 起,Canonical 默认使用 sudo-rs,但用户并未察觉到行为上的显著变化。在 Ubuntu 26.04 发布前的两周,sudo-rs 项目合并了一个启用 pwfeedback 选项的补丁,Canonical 将该补丁应用到 Ubuntu 26.04 的开发版本中。需要注意的是,经典 sudo 包(有时称为 sudo-ws)不受影响,只有 sudo-rs 路径显示星号。
时间轴回顾:
- 1980:
sudo 创建于 SUNY 水牛城分校,默认采用沉默的密码输入。
- Ubuntu 25.10 (2025年10月): Canonical 替换经典 C 版本的 sudo 为 sudo-rs (Rust),用户行为基本不变。
- 2025年10月: 提交 bug 报告,请求默认启用
pwfeedback 以改善用户体验。
- 2026年2月: sudo-rs 项目合并
pwfeedback 补丁,Canonical 应用到 Ubuntu 26.04 开发版本。社区辩论爆发。
- 2026年4月23日: Ubuntu 26.04 LTS “Resolute Raccoon” 正式发布,密码星号反馈成为默认设置。
安全争论:双方观点
批评者认为,这种改变打破了历史安全措施,增加了密码长度暴露的风险。然而,sudo-rs 的开发者反驳称,隐藏密码长度的实际安全收益微乎其微。攻击者若能靠近屏幕观察密码,同样可以听到或看到键盘输入。此外,大多数用户使用与登录密码相同的 sudo 密码,而登录界面已经显示密码输入的占位符点,在终端隐藏星号而登录界面显示则属于“安全秀”。
对比表格:
| 特性 |
经典 sudo (沉默) |
sudo-rs with pwfeedback |
| 视觉反馈 |
无 |
每个字符一个星号 |
| 密码长度暴露 |
否 |
是 (对肩窥者) |
| 登录界面一致性 |
不一致 - GDM 显示点 |
与图形界面提示一致 |
| 新用户体验 |
令人困惑 - 似乎卡住 |
确认输入正在注册 |
| SSH 会话行为 |
沉默 |
SSH 会话中也显示星号 |
| 可逆性 |
— |
是 - 一行 sudoers 配置 |
恢复经典行为:
用户可以通过编辑 sudoers 文件(使用 visudo 命令以避免语法错误)添加 Defaults !pwfeedback 这一行来恢复沉默的密码提示。更改会立即生效。
更广泛的意义:
星号改变是 Ubuntu 26.04 更广泛现代化的一部分,包括使用 GNOME 50(在 Wayland 上运行)、Linux 内核 7.0 以及采用 Rust 语言编写的核心工具,例如 uutils/coreutils。
总而言之,Ubuntu 26.04 引入密码反馈星号,代表了用户体验和安全之间权衡的讨论,同时也体现了 Linux 系统持续演进的过程。用户可以选择恢复经典行为,而开发者则认为默认启用星号反馈更符合现代用户的使用习惯。