From c385e6d36334342195203e5bd368f772992911d1 Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Wed, 17 Jun 2020 14:53:04 -0400 Subject: Don't ignore --user flag in rootless --userns keepid Currently podman run --userns keep-id --user root:root fedora id The --user flag is ignored. Removing this makes the code work correctly. Signed-off-by: Daniel J Walsh --- pkg/specgen/generate/namespaces.go | 4 +--- test/e2e/run_userns_test.go | 7 +++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/specgen/generate/namespaces.go b/pkg/specgen/generate/namespaces.go index e67afe1bf..3815bbcc9 100644 --- a/pkg/specgen/generate/namespaces.go +++ b/pkg/specgen/generate/namespaces.go @@ -153,9 +153,7 @@ func namespaceOptions(ctx context.Context, s *specgen.SpecGenerator, rt *libpod. // User switch s.UserNS.NSMode { case specgen.KeepID: - if rootless.IsRootless() { - s.User = "" - } else { + if !rootless.IsRootless() { // keep-id as root doesn't need a user namespace s.UserNS.NSMode = specgen.Host } diff --git a/test/e2e/run_userns_test.go b/test/e2e/run_userns_test.go index 25f12ec2e..5b9a99daa 100644 --- a/test/e2e/run_userns_test.go +++ b/test/e2e/run_userns_test.go @@ -89,6 +89,13 @@ var _ = Describe("Podman UserNS support", func() { Expect(ok).To(BeTrue()) }) + It("podman --userns=keep-id --user root:root", func() { + session := podmanTest.Podman([]string{"run", "--userns=keep-id", "--user", "root:root", "alpine", "id", "-u"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + Expect(session.OutputToString()).To(Equal("0")) + }) + It("podman --userns=auto", func() { u, err := user.Current() Expect(err).To(BeNil()) -- cgit v1.2.3-54-g00ecf