1234567891011121314151617181920212223242526272829303132 |
- // +build !windows
- package listeners
- import (
- "fmt"
- "strconv"
- "github.com/opencontainers/runc/libcontainer/user"
- "github.com/pkg/errors"
- )
- func lookupGID(name string) (int, error) {
- groupFile, err := user.GetGroupPath()
- if err != nil {
- return -1, errors.Wrap(err, "error looking up groups")
- }
- groups, err := user.ParseGroupFileFilter(groupFile, func(g user.Group) bool {
- return g.Name == name || strconv.Itoa(g.Gid) == name
- })
- if err != nil {
- return -1, errors.Wrapf(err, "error parsing groups for %s", name)
- }
- if groups != nil && len(groups) > 0 {
- return groups[0].Gid, nil
- }
- gid, err := strconv.Atoi(name)
- if err == nil {
- return gid, nil
- }
- return -1, fmt.Errorf("group %s not found", name)
- }
|