Skip to content

Commit

Permalink
shared/idmap: Support uid/gid in subuid/subgid
Browse files Browse the repository at this point in the history
Closes #575

Signed-off-by: Stéphane Graber <[email protected]>
  • Loading branch information
stgraber committed Mar 20, 2024
1 parent 41cc5f9 commit e32db50
Showing 1 changed file with 28 additions and 2 deletions.
30 changes: 28 additions & 2 deletions shared/idmap/set_load.go
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,20 @@ func NewSetFromSystem(rootfs string, username string) (*Set, error) {
// Parse the shadow uidmap.
entries, err := getFromShadow("/etc/subuid", username)
if err != nil {
return nil, err
if err != ErrNoUserMap {
return nil, err
}

// Try using the uid instead.
u, err := user.Lookup(username)
if err != nil {
return nil, ErrNoUserMap
}

entries, err = getFromShadow("/etc/subuid", u.Uid)
if err != nil {
return nil, err
}
}

for _, entry := range entries {
Expand All @@ -201,7 +214,20 @@ func NewSetFromSystem(rootfs string, username string) (*Set, error) {
// Parse the shadow gidmap.
entries, err = getFromShadow("/etc/subgid", username)
if err != nil {
return nil, err
if err != ErrNoUserMap {
return nil, err
}

// Try using the uid instead.
u, err := user.Lookup(username)
if err != nil {
return nil, ErrNoUserMap
}

entries, err = getFromShadow("/etc/subgid", u.Uid)
if err != nil {
return nil, err
}
}

for _, entry := range entries {
Expand Down

0 comments on commit e32db50

Please sign in to comment.