pub struct Passwd {
pub name: String,
pub uid: u32,
pub gid: u32,
pub user_info: Option<String>,
pub user_shell: Option<String>,
pub user_dir: Option<String>,
pub user_passwd: Option<String>,
}Fields§
§name: StringAKA passwd.pw_name
uid: u32AKA passwd.pw_uid
gid: u32AKA passwd.pw_gid
user_info: Option<String>AKA passwd.pw_gecos
user_shell: Option<String>AKA passwd.pw_shell
user_dir: Option<String>AKA passwd.pw_dir
user_passwd: Option<String>AKA passwd.pw_passwd
Implementations§
§impl Passwd
impl Passwd
pub fn belongs_to(&self) -> Vec<u32, Global>
pub fn belongs_to(&self) -> Vec<u32, Global>
This is a wrapper function for libc::getgrouplist.
From: <https://man7.org/linux/man-pages/man3/getgrouplist.3.html>
If the number of groups of which user is a member is less than or equal to *ngroups, then the value *ngroups is returned. If the user is a member of more than *ngroups groups, then getgrouplist() returns -1. In this case, the value returned in *ngroups can be used to resize the buffer passed to a further call getgrouplist().
However, on macOS/darwin (and maybe others?) getgrouplist does
not update ngroups if ngroups is too small. Therefore, if not
updated by getgrouplist, ngroups needs to be increased in a
loop until getgrouplist stops returning -1.