diff --git a/src/test/configs/updateUID/Dockerfile b/src/test/configs/updateUID/Dockerfile index bbf53798e..5730eb1bb 100644 --- a/src/test/configs/updateUID/Dockerfile +++ b/src/test/configs/updateUID/Dockerfile @@ -1,4 +1,4 @@ FROM debian:latest -RUN addgroup --gid 4321 foo -RUN adduser --uid 1234 --gid 4321 foo +RUN groupadd -g 4321 foo +RUN useradd -m -u 1234 -g 4321 foo diff --git a/src/test/configs/updateUIDOnly/Dockerfile b/src/test/configs/updateUIDOnly/Dockerfile index b08e22300..5807ac135 100644 --- a/src/test/configs/updateUIDOnly/Dockerfile +++ b/src/test/configs/updateUIDOnly/Dockerfile @@ -1,7 +1,7 @@ FROM debian:latest ARG LOCAL_GID -RUN addgroup --gid $LOCAL_GID bar || true +RUN groupadd -g $LOCAL_GID bar || true -RUN addgroup --gid 4321 foo -RUN adduser --uid 1234 --gid 4321 foo +RUN groupadd -g 4321 foo +RUN useradd -m -u 1234 -g 4321 foo diff --git a/src/test/configs/updateUIDamd64-platform-option/Dockerfile b/src/test/configs/updateUIDamd64-platform-option/Dockerfile index bbf53798e..5730eb1bb 100644 --- a/src/test/configs/updateUIDamd64-platform-option/Dockerfile +++ b/src/test/configs/updateUIDamd64-platform-option/Dockerfile @@ -1,4 +1,4 @@ FROM debian:latest -RUN addgroup --gid 4321 foo -RUN adduser --uid 1234 --gid 4321 foo +RUN groupadd -g 4321 foo +RUN useradd -m -u 1234 -g 4321 foo diff --git a/src/test/configs/updateUIDamd64/Dockerfile b/src/test/configs/updateUIDamd64/Dockerfile index 8eb804451..c8761e629 100644 --- a/src/test/configs/updateUIDamd64/Dockerfile +++ b/src/test/configs/updateUIDamd64/Dockerfile @@ -1,4 +1,4 @@ FROM --platform=linux/amd64 debian:latest -RUN addgroup --gid 4321 foo -RUN adduser --uid 1234 --gid 4321 foo +RUN groupadd -g 4321 foo +RUN useradd -m -u 1234 -g 4321 foo diff --git a/src/test/configs/updateUIDarm64-platform-option/Dockerfile b/src/test/configs/updateUIDarm64-platform-option/Dockerfile index bbf53798e..5730eb1bb 100644 --- a/src/test/configs/updateUIDarm64-platform-option/Dockerfile +++ b/src/test/configs/updateUIDarm64-platform-option/Dockerfile @@ -1,4 +1,4 @@ FROM debian:latest -RUN addgroup --gid 4321 foo -RUN adduser --uid 1234 --gid 4321 foo +RUN groupadd -g 4321 foo +RUN useradd -m -u 1234 -g 4321 foo diff --git a/src/test/configs/updateUIDarm64/Dockerfile b/src/test/configs/updateUIDarm64/Dockerfile index ce1897a73..81b143998 100644 --- a/src/test/configs/updateUIDarm64/Dockerfile +++ b/src/test/configs/updateUIDarm64/Dockerfile @@ -1,4 +1,4 @@ FROM --platform=linux/arm64 debian:latest -RUN addgroup --gid 4321 foo -RUN adduser --uid 1234 --gid 4321 foo +RUN groupadd -g 4321 foo +RUN useradd -m -u 1234 -g 4321 foo diff --git a/src/test/configs/updateUIDarm64v8-platform-option/Dockerfile b/src/test/configs/updateUIDarm64v8-platform-option/Dockerfile index bbf53798e..5730eb1bb 100644 --- a/src/test/configs/updateUIDarm64v8-platform-option/Dockerfile +++ b/src/test/configs/updateUIDarm64v8-platform-option/Dockerfile @@ -1,4 +1,4 @@ FROM debian:latest -RUN addgroup --gid 4321 foo -RUN adduser --uid 1234 --gid 4321 foo +RUN groupadd -g 4321 foo +RUN useradd -m -u 1234 -g 4321 foo diff --git a/src/test/configs/updateUIDarm64v8/Dockerfile b/src/test/configs/updateUIDarm64v8/Dockerfile index 0f8c4714f..8fa5c2fd8 100644 --- a/src/test/configs/updateUIDarm64v8/Dockerfile +++ b/src/test/configs/updateUIDarm64v8/Dockerfile @@ -1,4 +1,4 @@ FROM --platform=linux/arm64/v8 debian:latest -RUN addgroup --gid 4321 foo -RUN adduser --uid 1234 --gid 4321 foo +RUN groupadd -g 4321 foo +RUN useradd -m -u 1234 -g 4321 foo diff --git a/src/test/getEntPasswd.test.ts b/src/test/getEntPasswd.test.ts index d3c5945aa..14e77ec37 100644 --- a/src/test/getEntPasswd.test.ts +++ b/src/test/getEntPasswd.test.ts @@ -17,22 +17,25 @@ describe('getEntPasswdShellCommand', function () { { image: 'busybox', getentPath: undefined, - addUserOptions: '-D -h', + addUserCommand: 'adduser -D -h /home/foo foo\\\\bar', userName: 'foo\\bar', + homeFolder: '/home/foo', }, { image: 'debian', getentPath: '/usr/bin/getent', - addUserOptions: '--disabled-password --allow-all-names --gecos "" --home', + addUserCommand: 'useradd -m -d /home/foo --badname foo\\\\bar', userName: 'foo\\bar', + homeFolder: '/home/foo', }, { image: 'alpine', getentPath: '/usr/bin/getent', - addUserOptions: '-D -h', + addUserCommand: 'adduser -D -h /home/foo foo_bar', userName: 'foo_bar', // Alpine doesn't support backslash in user names. + homeFolder: '/home/foo', }, - ].forEach(({ image, getentPath, addUserOptions, userName }) => { + ].forEach(({ image, getentPath, addUserCommand, userName, homeFolder }) => { it(`should work with ${image} ${getentPath ? 'with' : 'without'} getent command`, async () => { const res = await shellExec(`docker run -d ${image} sleep inf`); const containerId = res.stdout.trim(); @@ -48,17 +51,17 @@ describe('getEntPasswdShellCommand', function () { .catch(() => undefined); assert.strictEqual(which?.stdout.trim(), getentPath); - await shellServer.exec(`adduser ${addUserOptions} /home/foo ${userName.replaceAll('\\', '\\\\')}`); + await shellServer.exec(addUserCommand); const userByName = await getUserFromPasswdDB(shellServer, userName); assert.ok(userByName); assert.strictEqual(userByName.name, userName); - assert.strictEqual(userByName.home, '/home/foo'); + assert.strictEqual(userByName.home, homeFolder); const userById = await getUserFromPasswdDB(shellServer, userByName.uid); assert.ok(userById); assert.strictEqual(userById.name, userName); - assert.strictEqual(userById.home, '/home/foo'); + assert.strictEqual(userById.home, homeFolder); const nonexistentUser = await getUserFromPasswdDB(shellServer, '123456'); assert.strictEqual(undefined, nonexistentUser);