diff options
author | Qi Wang <qiwan@redhat.com> | 2019-08-08 16:48:17 -0400 |
---|---|---|
committer | Qi Wang <qiwan@redhat.com> | 2019-08-08 17:14:47 -0400 |
commit | a2561ec58a1db6851a94d20c38fb1c913830cd34 (patch) | |
tree | 35b323f6391d36ea0cbef3b5f3af3f755516a191 /test/e2e/cp_test.go | |
parent | 09cedd152d5c5827520635b10498d15225999e19 (diff) | |
download | podman-a2561ec58a1db6851a94d20c38fb1c913830cd34.tar.gz podman-a2561ec58a1db6851a94d20c38fb1c913830cd34.tar.bz2 podman-a2561ec58a1db6851a94d20c38fb1c913830cd34.zip |
fix copy change file owner if cp from container
If copies file from container to local machine, change the file owner to the cp command caller.
Signed-off-by: Qi Wang <qiwan@redhat.com>
Diffstat (limited to 'test/e2e/cp_test.go')
-rw-r--r-- | test/e2e/cp_test.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/e2e/cp_test.go b/test/e2e/cp_test.go index 5e98e73eb..edd9c70c6 100644 --- a/test/e2e/cp_test.go +++ b/test/e2e/cp_test.go @@ -209,4 +209,40 @@ var _ = Describe("Podman cp", func() { session.WaitWithDefaultTimeout() Expect(session.ExitCode()).To(Equal(0)) }) + + It("podman cp from ctr chown ", func() { + setup := podmanTest.RunTopContainer("testctr") + setup.WaitWithDefaultTimeout() + Expect(setup.ExitCode()).To(Equal(0)) + + session := podmanTest.Podman([]string{"exec", "testctr", "adduser", "-S", "testuser"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + session = podmanTest.Podman([]string{"exec", "-u", "testuser", "testctr", "touch", "testfile"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + session = podmanTest.Podman([]string{"cp", "testctr:testfile", "testfile1"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + // owner of the file copied to local machine is not testuser + cmd := exec.Command("ls", "-l", "testfile1") + cmdRet, err := cmd.Output() + Expect(err).To(BeNil()) + Expect(strings.Contains(string(cmdRet), "testuser")).To(BeFalse()) + + session = podmanTest.Podman([]string{"cp", "testfile1", "testctr:testfile2"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + // owner of the file copied to a container is the root user + session = podmanTest.Podman([]string{"exec", "-it", "testctr", "ls", "-l", "testfile2"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + Expect(session.OutputToString()).To(ContainSubstring("root")) + + os.Remove("testfile1") + }) }) |