func()

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
}