]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm-user_group.sh
- behave like on x86
[packages/rpm.git] / rpm-user_group.sh
index 43d8148fc4fb9c049ed60d11c0ea4262cb605144..ee662e2153360dced797a5a51348aee562a0dd83 100644 (file)
@@ -14,14 +14,14 @@ fi
 if [ "$1" = user -o "$1" = group ]; then
        MODE=$1
 else
-       echo ERROR | $BANNERCMD $BANNERPARA
+       echo ERROR
        exit 2
 fi
 shift
 
 bannercmd()
 {
-       if [ "$BANNERCMD" == cat ]; then
+       if [ "$BANNERCMD" = cat ]; then
                echo cat
        else
                if [ "$RPM_SCRIPTVERBOSITY" -lt 2 ]; then
@@ -63,12 +63,15 @@ elif [ "$1" = del ]; then
                fi
        fi
 elif [ "$MODE" = "user" -a "$1" = "addtogroup" ]; then
-       USER=$2
-       GROUP=$3
-       GROUPS=`id -n -G $USER | sed -e's/^[^ ]* //;s/ /,/g'`
-       if ! echo ",$GROUPS," | grep -q ",$GROUP," ; then
-           echo "Adding user $USER to group $GROUP" | `bannercmd "${MODE}mod-$USER"`
-           usermod -G "$GROUPS,$GROUP" $USER
+       user="$2"
+       group="$3"
+       groups=$(id -n -G $user)
+       if [[ " $groups " != *\ $group\ * ]]; then
+           echo "Adding user $user to group $group" | `bannercmd "${MODE}mod-$user"`
+               for grp in $groups $group; do
+                       new="$new${new:+,}$grp"
+               done
+           usermod -G "$new" $user
        fi
 else
        echo ERROR
This page took 0.100831 seconds and 4 git commands to generate.