Skip to main content

Command Palette

Search for a command to run...

sudo-rs in a Nutshell: Why Ubuntu is Switching to Rust-Powered sudo 🚀

A quick, friendly dive into sudo-rs — a Rust reimplementation of the classic sudo command that’s safer, modern, and now shipping by default in Ubuntu

Updated
3 min read
sudo-rs in a Nutshell: Why Ubuntu is Switching to Rust-Powered sudo 🚀
N
Software Engineer specializing in distributed systems and high-performance infrastructure. Software Engineer with ~3 years of experience in designing and scaling distributed systems and caching architectures. Proven ability to build low-latency, high-throughput systems and resolve performance bottlenecks. Great passion for system design skills, and backend engineering where scale and reliability matter.

We’ve all been there. You’re happily hacking away, run into a “Permission denied,” and your fingers instinctively type:

sudo <whatever-command>

Boom — instant power. Root access 👀.

But here’s the thing: every time you type sudo, you’re literally handing the keys to your entire system to a 40-year-old program written in C. It works, but… C isn’t exactly known for being forgiving when it comes to memory safety. 🐛

So the natural question is: what if we reimagined sudo in Rust?
— That’s where sudo-rs comes in.


🦀 What’s sudo-rs?

In simple terms: sudo-rs is a reimplementation of the classic sudo command in Rust.

  • Same functionality, same config files, same user experience.

  • Just… safer.

  • Built by the folks at ISRG (yep, the people behind Let’s Encrypt).

The motivation is simple: sudo is one of the most critical tools in Unix/Linux land. If it breaks, or worse, gets exploited, the consequences are huge. Rust gives us a chance to rebuild it on a sturdier foundation.


🤔 Why Rust, though?

Rust is like that friend who never lets you leave the house without checking if you locked the door.🔒

  • No buffer overflows.

  • No dangling pointers.

  • No mysterious segfaults at 2 a.m 😂.

All thanks to Rust’s borrow checker and strict guarantees around memory safety.
When you’re writing something as sensitive as sudo, those guarantees aren’t just nice-to-haves — they’re lifesavers.


⚡ Status Check: Where’s sudo-rs Today?

  • Feature parity: It’s getting very close to being a drop-in replacement for sudo.

  • Actively developed: The project is alive and kicking.

  • Testing phase: Folks are experimenting with it, but it’s not yet the default on most systems.

Biggest update: Canonical has switched Ubuntu 25.10 to sudo-rs as the default sudo implementation. That’s a major milestone, showing real confidence in the project. Read more →


🌍 Why This Matters

This isn’t just about sudo. It’s part of a bigger movement: rewriting critical infrastructure in Rust.

Think about it:

  • systemd is exploring Rust.

  • OpenSSL got a Rust sibling (rustls).

  • Even parts of the Linux kernel are warming up to Rust.

The idea is simple: fewer CVEs, more peace of mind. Because when you’re talking about root-level tools, “oops, buffer overflow” just doesn’t cut it anymore.


📦 Did You Know?

  • The first version of sudo was created way back in 1980 at SUNY Buffalo.

  • Its name? Short for “superuser do” — though many jokingly call it “substitute user do.”

  • For over 40 years, sudo has been the invisible hero of sysadmins everywhere.

  • sudo-rs is like giving that old hero a shiny, rust-proof armor. 🦀✨


💡 Final Thought

The next time you type sudo, imagine a Rust-powered guardian angel hovering over your command, making sure nothing goes horribly wrong.

That’s the promise of sudo-rs — the same trusty tool we’ve used forever, but with safety baked in from the ground up.

So, what do you think?
👉 Would you trust a Rust-powered sudo on your daily machine, or do you prefer the tried-and-tested C version? Drop your thoughts below — I’d love to hear what side of the fence you’re on!


🎥 More to Watch

Ubuntu’s lead dev on sudo-rs QA: Watch here
In this video, the Ubuntu dev walks through quality assurance, decision-making, and what it really means for sudo-rs to be production-ready.

N

If you’re checking out sudo-rs, PAM is the other half of the story. Short read here 🔑 👉 https://nikhil-baskar.hashnode.dev/pam-in-a-nutshell-pluggable-authentication-modules-explained