diff --git a/libcontainer/setns_init_linux.go b/libcontainer/setns_init_linux.go index da31110ae..ac5819075 100644 --- a/libcontainer/setns_init_linux.go +++ b/libcontainer/setns_init_linux.go @@ -59,6 +59,10 @@ func (l *linuxSetnsInit) Init() error { return err } } + if l.config.Config.Umask != nil { + unix.Umask(int(*l.config.Config.Umask)) + } + if err := selinux.SetExecLabel(l.config.ProcessLabel); err != nil { return err } diff --git a/tests/integration/umask.bats b/tests/integration/umask.bats index fe9f9d637..38e8f6216 100644 --- a/tests/integration/umask.bats +++ b/tests/integration/umask.bats @@ -21,4 +21,9 @@ function teardown() { [ "$status" -eq 0 ] # umask 63 decimal = umask 77 octal [[ "${output}" == *"77"* ]] + + runc exec test_busybox grep '^Umask:' "/proc/self/status" + [ "$status" -eq 0 ] + # umask 63 decimal = umask 77 octal + [[ "${output}" == *"77"* ]] }