oci: skip checking gid for WithAppendAdditionalGroups

Signed-off-by: Ye Sijun <junnplus@gmail.com>
This commit is contained in:
Ye Sijun 2022-08-05 18:09:08 +08:00
parent 01a2b793b8
commit 2dbff1dbca
No known key found for this signature in database
GPG Key ID: 0582626C83FA9CD0
2 changed files with 14 additions and 5 deletions

View File

@ -879,15 +879,19 @@ func WithAppendAdditionalGroups(groups ...string) SpecOpts {
groupMap := make(map[string]user.Group)
for _, group := range ugroups {
groupMap[group.Name] = group
groupMap[strconv.Itoa(group.Gid)] = group
}
var gids []uint32
for _, group := range groups {
g, ok := groupMap[group]
if !ok {
return fmt.Errorf("unable to find group %s", group)
gid, err := strconv.ParseUint(group, 10, 32)
if err == nil {
gids = append(gids, uint32(gid))
} else {
g, ok := groupMap[group]
if !ok {
return fmt.Errorf("unable to find group %s", group)
}
gids = append(gids, uint32(g.Gid))
}
gids = append(gids, uint32(g.Gid))
}
s.Process.User.AdditionalGids = append(s.Process.User.AdditionalGids, gids...)
return nil

View File

@ -476,6 +476,11 @@ daemon:x:2:root,bin,daemon
groups: []string{"bin", "daemon"},
expected: []uint32{0, 1, 2},
},
{
name: "append group id",
groups: []string{"999"},
expected: []uint32{999},
},
{
name: "unknown group",
groups: []string{"unknown"},