]> code.ossystems Code Review - openembedded-core.git/commitdiff
rootfs-postcommands: amend systemd_create_users add user to group check
authorTean Cunningham <tean.cunningham@digi.com>
Tue, 1 Mar 2022 21:25:39 +0000 (14:25 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 2 Mar 2022 18:41:52 +0000 (18:41 +0000)
Currently when adding a user to a group ('m' type), the conditional
check to only create a user/group if it does not exist always resolves
to true. This causes a build exit failure if the user and/or group
defined in the sysusers configuration file were already created prior to
the execution of systemd_create_users().

This logic has been updated to instead fail silently (consistent with
'u' and 'g' type). Additionally, if a user doesn't exist it will be
created without the default group.

Signed-off-by: Tean Cunningham <tean.cunningham@digi.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/rootfs-postcommands.bbclass

index cd8986d8a90b7b1d3d58fdee1d82dfe2091907a8..b63a5b90d3b94f68e8a0ffb23a3ffee6c3d126af 100644 (file)
@@ -78,12 +78,8 @@ systemd_create_users () {
                        eval groupadd --root ${IMAGE_ROOTFS} $groupadd_params || true
                elif [ "$type" = "m" ]; then
                        group=$id
-                       if [ ! `grep -q "^${group}:" ${IMAGE_ROOTFS}${sysconfdir}/group` ]; then
-                               eval groupadd --root ${IMAGE_ROOTFS} --system $group
-                       fi
-                       if [ ! `grep -q "^${name}:" ${IMAGE_ROOTFS}${sysconfdir}/passwd` ]; then
-                               eval useradd --root ${IMAGE_ROOTFS} --shell /sbin/nologin --system $name
-                       fi
+                       eval groupadd --root ${IMAGE_ROOTFS} --system $group || true
+                       eval useradd --root ${IMAGE_ROOTFS} --shell /sbin/nologin --system $name --no-user-group || true
                        eval usermod --root ${IMAGE_ROOTFS} -a -G $group $name
                fi
                done