mirror of
https://github.com/containers/podman.git
synced 2025-05-20 08:36:23 +08:00
libpod: do not parse --hostuser in base 8
fix the parsing of --hostuser to treat the input in base 10. Closes: https://github.com/containers/podman/issues/19800 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
@ -821,12 +821,12 @@ func lookupHostUser(name string) (*runcuser.ExecUser, error) {
|
||||
if err != nil {
|
||||
return &execUser, err
|
||||
}
|
||||
uid, err := strconv.ParseUint(u.Uid, 8, 32)
|
||||
uid, err := strconv.ParseUint(u.Uid, 10, 32)
|
||||
if err != nil {
|
||||
return &execUser, err
|
||||
}
|
||||
|
||||
gid, err := strconv.ParseUint(u.Gid, 8, 32)
|
||||
gid, err := strconv.ParseUint(u.Gid, 10, 32)
|
||||
if err != nil {
|
||||
return &execUser, err
|
||||
}
|
||||
|
@ -786,6 +786,17 @@ EOF
|
||||
user=$(id -un)
|
||||
run_podman 1 run --rm $IMAGE grep $user /etc/passwd
|
||||
run_podman run --hostuser=$user --rm $IMAGE grep $user /etc/passwd
|
||||
|
||||
# find a user with a uid > 100 that is a valid octal
|
||||
# Issue #19800
|
||||
octal_user=$(awk -F\: '$1!="nobody" && $3>100 && $3~/^[0-7]+$/ {print $1 " " $3; exit}' /etc/passwd)
|
||||
# test only if a valid user was found
|
||||
if test -n "$octal_user"; then
|
||||
read octal_username octal_userid <<< $octal_user
|
||||
run_podman run --user=$octal_username --hostuser=$octal_username --rm $IMAGE id -u
|
||||
is "$output" "$octal_userid"
|
||||
fi
|
||||
|
||||
user=$(id -u)
|
||||
run_podman run --hostuser=$user --rm $IMAGE grep $user /etc/passwd
|
||||
run_podman run --hostuser=$user --user $user --rm $IMAGE grep $user /etc/passwd
|
||||
|
Reference in New Issue
Block a user