-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathgroups.rs
31 lines (22 loc) · 879 Bytes
/
groups.rs
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
extern crate users;
use users::{Users, Group, UsersCache, get_user_groups, group_access_list};
extern crate env_logger;
fn main() {
env_logger::init();
let cache = UsersCache::new();
let user = cache.get_user_by_uid(cache.get_current_uid())
.expect("No current user?");
let mut groups: Vec<Group> = get_user_groups(user.name(), user.primary_group_id())
.expect("No user groups?");
groups.sort_by(|a, b| a.gid().cmp(&b.gid()));
for group in groups {
println!("Group {} has name {}", group.gid(), group.name().to_string_lossy());
}
let mut groups = group_access_list()
.expect("Group access list");
groups.sort_by(|a, b| a.gid().cmp(&b.gid()));
println!("\nGroup access list:");
for group in groups {
println!("Group {} has name {}", group.gid(), group.name().to_string_lossy());
}
}