pub struct Passwd {
pub name: String,
pub uid: uid_t,
pub gid: gid_t,
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: uid_tAKA passwd.pw_uid
gid: gid_tAKA 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§
source§impl Passwd
impl Passwd
sourcepub fn belongs_to(&self) -> Vec<gid_t>
pub fn belongs_to(&self) -> Vec<gid_t>
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.