in providers/darwin/process_darwin.go [126:145]
func (p *process) User() (types.UserInfo, error) {
kproc, err := unix.SysctlKinfoProc("kern.proc.pid", p.pid)
if err != nil {
return types.UserInfo{}, err
}
egid := ""
if len(kproc.Eproc.Ucred.Groups) > 0 {
egid = strconv.Itoa(int(kproc.Eproc.Ucred.Groups[0]))
}
return types.UserInfo{
UID: strconv.Itoa(int(kproc.Eproc.Pcred.P_ruid)),
EUID: strconv.Itoa(int(kproc.Eproc.Ucred.Uid)),
SUID: strconv.Itoa(int(kproc.Eproc.Pcred.P_svuid)),
GID: strconv.Itoa(int(kproc.Eproc.Pcred.P_rgid)),
SGID: strconv.Itoa(int(kproc.Eproc.Pcred.P_svgid)),
EGID: egid,
}, nil
}