mirror of
https://github.com/containers/podman.git
synced 2025-06-07 07:45:34 +08:00

If I enter a continer with --userns keep-id, my UID will be present inside of the container, but most likely my user will not be defined. This patch will take information about the user and stick it into the container. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
43 lines
805 B
Go
43 lines
805 B
Go
// +build linux
|
|
|
|
package libpod
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
|
|
spec "github.com/opencontainers/runtime-spec/specs-go"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestGenerateUserPasswdEntry(t *testing.T) {
|
|
dir, err := ioutil.TempDir("", "libpod_test_")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer os.RemoveAll(dir)
|
|
|
|
c := Container{
|
|
config: &ContainerConfig{
|
|
User: "123:456",
|
|
Spec: &spec.Spec{},
|
|
},
|
|
state: &ContainerState{
|
|
Mountpoint: "/does/not/exist/tmp/",
|
|
},
|
|
}
|
|
user, err := c.generateUserPasswdEntry()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
assert.Equal(t, user, "123:x:123:456:container user:/:/bin/sh\n")
|
|
|
|
c.config.User = "567"
|
|
user, err = c.generateUserPasswdEntry()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
assert.Equal(t, user, "567:x:567:0:container user:/:/bin/sh\n")
|
|
}
|