1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
extern crate uzers;
use uzers::os::unix::{GroupExt, UserExt};
use uzers::{Groups, Users, UsersCache};
//use uzers::os::bsd::UserExt as BSDUserExt;
extern crate env_logger;
fn main() {
env_logger::init();
let cache = UsersCache::new();
let current_uid = cache.get_current_uid();
println!("Your UID is {}", current_uid);
let you = cache
.get_user_by_uid(current_uid)
.expect("No entry for current user!");
println!("Your username is {}", you.name().to_string_lossy());
println!("Your shell is {}", you.shell().display());
println!("Your home directory is {}", you.home_dir().display());
// The two fields below are only available on BSD systems.
// Linux systems don’t have the fields in their `passwd` structs!
//println!("Your password change timestamp is {}", you.password_change_time());
//println!("Your password expiry timestamp is {}", you.password_expire_time());
let primary_group = cache
.get_group_by_gid(you.primary_group_id())
.expect("No entry for your primary group!");
println!(
"Your primary group has ID {} and name {}",
primary_group.gid(),
primary_group.name().to_string_lossy()
);
if primary_group.members().is_empty() {
println!("There are no other members of that group.");
} else {
for username in primary_group.members() {
println!(
"User {} is also a member of that group.",
username.to_string_lossy()
);
}
}
}
|