#passwd #user-name #unix #home-dir #api-bindings #login-shell


Get user information stored in the password file /etc/passwd

3 unstable releases

0.2.0 Jul 18, 2022
0.1.1 Jul 28, 2020
0.1.0 Jul 28, 2020

#380 in Unix APIs

Download history 1/week @ 2024-01-30 22/week @ 2024-02-06 2/week @ 2024-02-13 23/week @ 2024-02-20 15/week @ 2024-02-27 2/week @ 2024-03-05 25/week @ 2024-03-12 8/week @ 2024-03-19 44/week @ 2024-03-26 114/week @ 2024-04-02 19/week @ 2024-04-09 53/week @ 2024-04-16 240/week @ 2024-04-23

444 downloads per month
Used in libside


200 lines


maintenance status: passively-maintained license crates.io docs.rs rust 1.56.1+ badge Rust CI codecov

Get user information stored in the password file /etc/passwd.

This crate provides a safe wrapper for libc functions such as getpwnam_r(3) and getpwuid_r(3).


Add this to your Cargo.toml:

etc-passwd = "0.2.0"


Get a current user information:

use etc_passwd::Passwd;

if let Some(passwd) = Passwd::current_user()? {
    println!("current user name is: {}", passwd.name.to_str()?);
    println!("your user id is: {}", passwd.uid);
    println!("your group id is: {}", passwd.gid);
    println!("your full name is: {}", passwd.gecos.to_str()?);
    println!("your home directory is: {}", passwd.dir.to_str()?);
    println!("your login shell is: {}", passwd.shell.to_str()?);
} else {
    println!("oops! current user is not found... who are you?");

Minimum supported Rust version (MSRV)

The minimum supported Rust version is Rust 1.56.1. At least the last 3 versions of stable Rust are supported at any given time.

While a crate is pre-release status (0.x.x) it may have its MSRV bumped in a patch release. Once a crate has reached 1.x, any MSRV bump will be accompanied with a new minor version.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.