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

etc-passwd

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

4 releases

0.2.1 Jul 9, 2024
0.2.0 Jul 18, 2022
0.1.1 Jul 28, 2020
0.1.0 Jul 28, 2020

#162 in Unix APIs

Download history 116/week @ 2024-07-22 174/week @ 2024-07-29 191/week @ 2024-08-05 290/week @ 2024-08-12 205/week @ 2024-08-19 263/week @ 2024-08-26 234/week @ 2024-09-02 410/week @ 2024-09-09 345/week @ 2024-09-16 444/week @ 2024-09-23 333/week @ 2024-09-30 261/week @ 2024-10-07 198/week @ 2024-10-14 269/week @ 2024-10-21 337/week @ 2024-10-28 443/week @ 2024-11-04

1,266 downloads per month
Used in libside

MIT/Apache

16KB
200 lines

etc-passwd

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).

Usage

Add this to your Cargo.toml:

[dependencies]
etc-passwd = "0.2.1"

Examples

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.

License

Licensed under either of

at your option.

Contribution

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.

Dependencies

~44KB