From 2276e2de257f8ca7ea873165d989be13d3d21698 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan <47282725+renukamanavalan@users.noreply.github.com> Date: Thu, 8 Apr 2021 07:48:37 -0700 Subject: [PATCH] [baseimage]: specify gid for redis group. (#7249) Problem: Default groupadd for redis, takes 1000 by default. This forces, subsequently created admin group to get 1001. As all TACACS users are created with 1000 as their gid, they end up in redis group. Fix: Create redis group *after* admin group is created Add a check that admin group id is 1000 --- build_debian.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/build_debian.sh b/build_debian.sh index af17a2eead..526a8220c4 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -233,15 +233,16 @@ sudo cp files/docker/docker.service.conf $_ ## Fix systemd race between docker and containerd sudo sed -i '/After=/s/$/ containerd.service/' $FILESYSTEM_ROOT/lib/systemd/system/docker.service -## Create redis group -sudo LANG=C chroot $FILESYSTEM_ROOT groupadd -f redis - ## Create default user ## Note: user should be in the group with the same name, and also in sudo/docker/redis groups -sudo LANG=C chroot $FILESYSTEM_ROOT useradd -G sudo,docker,redis $USERNAME -c "$DEFAULT_USERINFO" -m -s /bin/bash +sudo LANG=C chroot $FILESYSTEM_ROOT useradd -G sudo,docker $USERNAME -c "$DEFAULT_USERINFO" -m -s /bin/bash ## Create password for the default user echo "$USERNAME:$PASSWORD" | sudo LANG=C chroot $FILESYSTEM_ROOT chpasswd +## Create redis group +sudo LANG=C chroot $FILESYSTEM_ROOT groupadd -f redis +sudo LANG=C chroot $FILESYSTEM_ROOT usermod -aG redis $USERNAME + if [[ $CONFIGURED_ARCH == amd64 ]]; then ## Pre-install hardware drivers sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install \ @@ -531,6 +532,13 @@ sudo du -hsx $FILESYSTEM_ROOT sudo mkdir -p $FILESYSTEM_ROOT/var/lib/docker sudo mksquashfs $FILESYSTEM_ROOT $FILESYSTEM_SQUASHFS -e boot -e var/lib/docker -e $PLATFORM_DIR + +# Ensure admin gid is 1000 +gid_user=$(sudo LANG=C chroot $FILESYSTEM_ROOT id -g $USERNAME) || gid_user="none" +if [ "${gid_user}" != "1000" ]; then + die "expect gid 1000. current:${gid_user}" +fi + ## Compress docker files pushd $FILESYSTEM_ROOT && sudo tar czf $OLDPWD/$FILESYSTEM_DOCKERFS -C ${DOCKERFS_PATH}var/lib/docker .; popd