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: String
AKA passwd.pw_name
uid: u32
AKA passwd.pw_uid
gid: u32
AKA 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<u32>
pub fn belongs_to(&self) -> Vec<u32>
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.