aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephano Cetola <stephano.cetola@linux.intel.com>2016-07-14 11:12:40 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-21 07:45:01 +0100
commitf0a77bee3d092cf79b7e584b943a623eddd6e13d (patch)
treecbe52affdd41025c73c19623557099bfb12349b1
parente68774f684543fd75250e56ea88a5e0cb0a2dd0a (diff)
downloadopenembedded-core-contrib-f0a77bee3d092cf79b7e584b943a623eddd6e13d.tar.gz
openembedded-core-contrib-f0a77bee3d092cf79b7e584b943a623eddd6e13d.tar.bz2
openembedded-core-contrib-f0a77bee3d092cf79b7e584b943a623eddd6e13d.zip
systemd: allow add users to groups in rootfs postprocess
Currently the functionality checks for the "u" and "g" flags to create users and groups, but not the "m" flag to add users to groups. This change first checks to be sure that the users and groups are created, creates them if necessary, then adds the user to the group. Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/rootfs-postcommands.bbclass9
1 files changed, 9 insertions, 0 deletions
diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass
index db8b551533d..b38b6a50c5f 100644
--- a/meta/classes/rootfs-postcommands.bbclass
+++ b/meta/classes/rootfs-postcommands.bbclass
@@ -45,6 +45,15 @@ systemd_create_users () {
[ "$id" != "-" ] && groupadd_params="$groupadd_params --gid $id"
groupadd_params="$groupadd_params --system $name"
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 usermod --root ${IMAGE_ROOTFS} -a -G $group $name
fi
done
done