Add shadow-rs project page

This commit is contained in:
Sylvestre Ledru
2026-05-30 09:54:48 +02:00
parent 98c6ab23b1
commit bb8a4dc97d
3 changed files with 39 additions and 0 deletions
+6
View File
@@ -100,6 +100,12 @@ Ubuntu is already [carefully but purposefully adopting](https://discourse.ubuntu
BSD utility programs: <code>cal</code>, <code>logger</code>, <code>script</code>, <code>wall</code> and more.
</p>
</a>
<a class="project" href="/shadow-rs">
<h2>shadow-rs</h2>
<p>
User and group management: <code>useradd</code>, <code>passwd</code>, <code>groupadd</code>, <code>usermod</code> and more.
</p>
</a>
</div>
# Crates
+32
View File
@@ -0,0 +1,32 @@
+++
title = "shadow-rs"
template = "project.html"
[extra]
wip = true
+++
Memory-safe Rust reimplementation of Linux shadow-utils: `useradd`, `userdel`, `usermod`, `passwd`, `pwck`, `chpasswd`, `chage`, `groupadd`, `groupdel`, `groupmod`, `grpck`, `chfn`, `chsh`, and `newgrp`.
This project aims to be a drop-in replacement for the original commands, with the same flags, exit codes, and output format as GNU shadow-utils.
# Goals
This project aims to be a drop-in replacement for the GNU shadow-utils, with a focus on:
- **Drop-in compatibility** — same flags, same exit codes, same output format as GNU shadow-utils.
- **Memory safety** — eliminating buffer overflows and use-after-free vulnerabilities through Rust's type system.
- **Security hardening** — Landlock sandboxing and privilege dropping.
- **Comprehensive testing** — unit tests, property-based tests, integration tests, and fuzz targets.
# Contributing
To contribute to uutils shadow-rs, please see [CONTRIBUTING](https://github.com/uutils/shadow-rs/blob/main/CONTRIBUTING.md).
# License
uutils shadow-rs is licensed under the MIT License - see the [LICENSE](https://github.com/uutils/shadow-rs/blob/main/LICENSE) file for details.
GNU shadow-utils is licensed under the BSD 3-Clause License.
+1
View File
@@ -41,6 +41,7 @@
<a href="/login">Login</a>
<a href="/hostname">Hostname</a>
<a href="/bsdutils">Bsdutils</a>
<a href="/shadow-rs">Shadow-rs</a>
</div>
</div>
</div>