passwd-rs

Crate/Library providing a functions to get information about groups, users and shadow passwords.

Example

```rust use passwd_rs::{Group, User, Shadow, AccountStatus};

fn main() -> std::io::Result<()> { let user = User::currentuser()?; let password; if user.passwd.asref().unwrap().eq("x") { // WARN! This works only if program is executed as root let shadow = match Shadow::newfromusername(&user.name.clone()) { Err(e) => { if e.kind() == std::io::ErrorKind::PermissionDenied { println!("Must be run as root to access shadow passwords"); } else { return Err(e) };

            return Ok(());
        },
        Ok(o) => o,
    };
    if let AccountStatus::Active(passwd) = shadow.passwd {
        password = passwd;
    } else {
        password = shadow.passwd.to_string();
    }
} else {
    password = user.passwd.unwrap();
}

let group = Group::new_from_gid(user.gid.clone())?;

println!("Group details:");
println!("Name: {}", group.name);
println!("ID: {}", group.gid);
println!("Members: {}", group.display_members());
println!();
println!("User details:");
println!("Name: {}", user.name);
println!("ID: {}", user.uid);
println!("Password: {}", password);

Ok(())

} ```