Ubuntu 25.10 切换到基于 Rust 的 Sudo

10 月 9 日发布的 Ubuntu 25.10“Questing Quokka”中所有引人注目的新功能将隐藏一个重大的基础性变化:一个新的改进版本的 sudo 编写的

我相信你们都知道,sudo 命令可以让您以 root 或超级用户安全权限运行应用程序、工具和实用程序(sudo是 Linux 上“超级用户做”的混合词。这可以说是唯一一个 Linux 命令每个人知道。

目前,Ubuntu 中的 sudo 命令是用 C 编写的。但是 Ubuntu 25.10 将默认使用用 Rust 编写的新版本 sudo:sudo-rs

sudo-rs该项目由 Trifecta 技术基金会开发,该基金会于本月初宣布了这一消息。他们说他们很“兴奋”地看到 Ubuntu“致力于使用 sudo-rs 并利用其作用来推动 Rust 在系统编程中的采用”。

为什么要这样做?提高Linux上最关键命令sudo命令的安全性

Canonical 的工程副总裁 Jon Seager 补充道,该公司“很高兴能够投资关键的低级软件实用程序,[并且]通过选择采用 sudo-rs,我希望能够加快在整个 Linux 生态系统中更广泛采用的步伐”

进行此更改的目的是提高 sudo 命令的安全性,这要归功于 Rust 编程语言内置的“内存安全”功能。

值得注意的是,过去 30 年来 sudo 的原始维护者 Todd Miller 为一直致力于这个基于 Rust 的替代品的团队提供了“建议和指导”——令人鼓舞!

这对你来说意味着什么?

不要惊慌,认为您现在需要解开多年学习的肌肉记忆打字sudo而必须输入sudo-rs: 你不会。

运行 sudo 的命令没有改变,只是 sudo 编程的语言。你仍然运行sudo在 Ubuntu 25.10 中,当您现在执行此操作时,请使用 sudo-rs。

为了实现这一转变,Canonical 支持充实新版本的工作:

  • 粗粒度外壳逃逸防护(NOEXEC)
  • 控制 AppArmor 配置文件
  • 能够使用 sudoedit
  • 在 Linux 5.9 之前的内核中工作(例如 Ubuntu 20.04 LTS)

更多的特性和功能正在计划中,通过添加对 SELinux 的支持、支持sudoreplay,添加跨平台兼容性等等。

需要注意的一件事是sudo-rs 的目标并不是 1:1 重新实现。

该命令将保留sudo,所以你不需要对抗肌肉记忆!

旧的基于 C 的 sudo 的一些次要或较少使用的功能将不会在这个基于 Rust 的替代方案中实现,因为开发人员正在采用他们所描述的“少即是多的方法”。

Ubuntu 已承诺将原始 sudo 保留在档案中(包括 26.04 LTS 之后),以便那些想要(或需要)换回的人可以这样做。

最终的目标是制作一个更好、更安全的 sudo,而不会对最终用户造成真正的干扰。

通过在 Ubuntu 25.10 中进行此切换,用户有时间尝试一下1,在现实场景中对其进行测试,并提供反馈以帮助进一步改进 sudo-rs,然后将其纳入明年的 Ubuntu 26.04 LTS 版本中,该版本已获得 Canonical 超过 10 年的支持。

为什么用 Rust 重写 Sudo?

Rust 编程语言到处目前在开源软件中,它被用来创建从基于终端的工具到复杂的 GUI 应用程序,从简单的 Linux 内核子系统到成熟的驱动程序的一切内容。

但为什么它如此流行呢?

Rust 被称为“内存安全语言”,因为它在编译时(而不是运行时)应用严格的检查,以确保每块内存都被正确使用。这意味着它可以在错误发生之前捕获这些错误,这些错误可能被攻击者利用。

具体来说,我在这里抄袭维基百科,因为我不是开发人员,Rust 可以防止缓冲区溢出(内存中存储的数据超出其处理能力,导致溢出)和释放后使用(程序尝试访问已释放的内存)。

这两者都不仅仅是理论上的安全向量,但经过验证的。

更好的安全性超越了趋势

围绕 Rust 的不可避免的炒作是否合理,最终需要时间来决定。技术敏锐度固然很好,但任何鼓励更多人学习、构建开源并为开源做出贡献的语言都受到我的欢迎。

正如 Ubuntu 采用 sudo-rs 一样 — sudo 是任何 Linux 发行版上最关键的命令之一,因此任何使其更加安全、可靠并针对故障、错误和安全威胁进行强化的尝试都是正确的。

  1. 您可以安装sudo-rsUbuntu 25.04 中的存储库,尽管旧版本缺乏 25.10 版本中提供的改进。跑步sudo apt install rust-sudo-rs得到它。在测试别名可以满足您所需的所有功能之前,请勿设置别名。↩︎

10 月 9 日发布的 Ubuntu 25.10“Questing Quokka”中所有引人注目的新功能将隐藏一个重大的基础性变化:一个新的改进版本的 sudo 编写的

我相信你们都知道,sudo 命令可以让您以 root 或超级用户安全权限运行应用程序、工具和实用程序(sudo是 Linux 上“超级用户做”的混合词。这可以说是唯一一个 Linux 命令每个人知道。

目前,Ubuntu 中的 sudo 命令是用 C 编写的。但是 Ubuntu 25.10 将默认使用用 Rust 编写的新版本 sudo:sudo-rs

为什么 Ubuntu 使用 sudo-rs?

sudo-rs该项目由 Trifecta 技术基金会开发,该基金会于本月初宣布了这一消息。他们说他们很“兴奋”地看到 Ubuntu“致力于使用 sudo-rs 并利用其作用来推动 Rust 在系统编程中的采用”。

为什么要这样做?提高Linux上最关键命令sudo命令的安全性

Canonical 的工程副总裁 Jon Seager 补充道,该公司“很高兴能够投资关键的低级软件实用程序,[并且]通过选择采用 sudo-rs,我希望能够加快在整个 Linux 生态系统中更广泛采用的步伐”

进行此更改的目的是提高 sudo 命令的安全性,这要归功于 Rust 编程语言内置的“内存安全”功能。

值得注意的是,过去 30 年来 sudo 的原始维护者 Todd Miller 为一直致力于这个基于 Rust 的替代品的团队提供了“建议和指导”——令人鼓舞!

这对你来说意味着什么?

不要惊慌,认为您现在需要解开多年学习的肌肉记忆打字sudo而必须输入sudo-rs: 你不会。

运行 sudo 的命令没有改变,只是 sudo 编程的语言。你仍然运行sudo在 Ubuntu 25.10 中,当您现在执行此操作时,请使用 sudo-rs。

为了实现这一转变,Canonical 支持充实新版本的工作:

  • 粗粒度外壳逃逸防护(NOEXEC)
  • 控制 AppArmor 配置文件
  • 能够使用 sudoedit
  • 在 Linux 5.9 之前的内核中工作(例如 Ubuntu 20.04 LTS)

更多的特性和功能正在计划中,通过添加对 SELinux 的支持、支持sudoreplay,添加跨平台兼容性等等。

需要注意的一件事是sudo-rs 的目标并不是 1:1 重新实现。

该命令将保留sudo,所以你不需要对抗肌肉记忆!

旧的基于 C 的 sudo 的一些次要或较少使用的功能将不会在这个基于 Rust 的替代方案中实现,因为开发人员正在采用他们所描述的“少即是多的方法”。

Ubuntu 已承诺将原始 sudo 保留在档案中(包括 26.04 LTS 之后),以便那些想要(或需要)换回的人可以这样做。

最终的目标是制作一个更好、更安全的 sudo,而不会对最终用户造成真正的干扰。

通过在 Ubuntu 25.10 中进行此切换,用户有时间尝试一下1,在现实场景中对其进行测试,并提供反馈以帮助进一步改进 sudo-rs,然后将其纳入明年的 Ubuntu 26.04 LTS 版本中,该版本已获得 Canonical 超过 10 年的支持。

为什么用 Rust 重写 Sudo?

Rust 编程语言到处目前在开源软件中,它被用来创建从基于终端的工具到复杂的 GUI 应用程序,从简单的 Linux 内核子系统到成熟的驱动程序的一切内容。

但为什么它如此流行呢?

Rust 被称为“内存安全语言”,因为它在编译时(而不是运行时)应用严格的检查,以确保每块内存都被正确使用。这意味着它可以在错误发生之前捕获这些错误,这些错误可能被攻击者利用。

具体来说,我在这里抄袭维基百科,因为我不是开发人员,Rust 可以防止缓冲区溢出(内存中存储的数据超出其处理能力,导致溢出)和释放后使用(程序尝试访问已释放的内存)。

这两者都不仅仅是理论上的安全向量,但经过验证的。

更好的安全性超越了趋势

围绕 Rust 的不可避免的炒作是否合理,最终需要时间来决定。技术敏锐度固然很好,但任何鼓励更多人学习、构建开源并为开源做出贡献的语言都受到我的欢迎。

正如 Ubuntu 采用 sudo-rs 一样 — sudo 是任何 Linux 发行版上最关键的命令之一,因此任何使其更加安全、可靠并针对故障、错误和安全威胁进行强化的尝试都是正确的。

  1. 您可以安装sudo-rsUbuntu 25.04 中的存储库,尽管旧版本缺乏 25.10 版本中提供的改进。跑步sudo apt install rust-sudo-rs得到它。在测试别名可以满足您所需的所有功能之前,请勿设置别名。↩︎