mirror of
https://github.com/containers/podman.git
synced 2025-08-24 10:04:57 +08:00
Add username to /etc/passwd inside of container if --userns keep-id
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>
This commit is contained in:
42
libpod/container_internal_linux_test.go
Normal file
42
libpod/container_internal_linux_test.go
Normal file
@ -0,0 +1,42 @@
|
||||
// +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")
|
||||
}
|
Reference in New Issue
Block a user