Message ID | 9c3cff6e514e8ccc69b9462197c7bceeb117a55e.1319167843.git.otavio@ossystems.com.br |
---|---|
State | Accepted |
Commit | 82933a1ff921fd0836f03e6f379fd8536cdc0a30 |
Headers | show |
diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass index 1e03a04..fb70b3e 100644 --- a/meta/classes/useradd.bbclass +++ b/meta/classes/useradd.bbclass @@ -37,7 +37,13 @@ if test "x$GROUPADD_PARAM" != "x"; then opts=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1` remaining=`echo "$GROUPADD_PARAM" | cut -d ';' -f 2-` while test "x$opts" != "x"; do - eval $PSEUDO groupadd -f $OPT $opts + groupname=`echo "$opts" | awk '{ print $NF }'` + group_exists=`grep "^$groupname:" $SYSROOT/etc/group || true` + if test "x$group_exists" = "x"; then + eval $PSEUDO groupadd $OPT $opts + else + echo "Note: group $groupname already exists, not re-creating it" + fi if test "x$opts" = "x$remaining"; then break
On 10/20/2011 08:31 PM, Otavio Salvador wrote: > The use of groupadd -f makes much more difficult to figure when a > group is not add. This was the case of the class not working for our > usage and this being caused by the lack of '/etc/group' file but > unnoticed as groupadd wasn't failing according. > > Signed-off-by: Otavio Salvador<otavio@ossystems.com.br> Thanks for getting to the bottom of this! Acked-by: Scott Garman <scott.a.garman@intel.com> > --- > meta/classes/useradd.bbclass | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass > index 1e03a04..fb70b3e 100644 > --- a/meta/classes/useradd.bbclass > +++ b/meta/classes/useradd.bbclass > @@ -37,7 +37,13 @@ if test "x$GROUPADD_PARAM" != "x"; then > opts=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1` > remaining=`echo "$GROUPADD_PARAM" | cut -d ';' -f 2-` > while test "x$opts" != "x"; do > - eval $PSEUDO groupadd -f $OPT $opts > + groupname=`echo "$opts" | awk '{ print $NF }'` > + group_exists=`grep "^$groupname:" $SYSROOT/etc/group || true` > + if test "x$group_exists" = "x"; then > + eval $PSEUDO groupadd $OPT $opts > + else > + echo "Note: group $groupname already exists, not re-creating it" > + fi > > if test "x$opts" = "x$remaining"; then > break
The use of groupadd -f makes much more difficult to figure when a group is not add. This was the case of the class not working for our usage and this being caused by the lack of '/etc/group' file but unnoticed as groupadd wasn't failing according. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> --- meta/classes/useradd.bbclass | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)