]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm-user_group.sh
- it uses bash syntax, maybe should be rewritten
[packages/rpm.git] / rpm-user_group.sh
index 43d8148fc4fb9c049ed60d11c0ea4262cb605144..0319dc46dd1419539e98b9d7b2beee09e19e7aca 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
@@ -52,23 +52,26 @@ elif [ "$1" = del ]; then
                echo "Removing $MODE $2" | `bannercmd "${MODE}del-$2"`
                /usr/sbin/${MODE}del $2 || :
                if [ -x /usr/sbin/nscd ]; then
-               case "${MODE}" in
-               user)
-                       /usr/sbin/nscd -i passwd
-                       ;;
-               group)
-                       /usr/sbin/nscd -i group
-                       ;;
-               esac
+                       case "${MODE}" in
+                       user)
+                               /usr/sbin/nscd -i passwd
+                               ;;
+                       group)
+                               /usr/sbin/nscd -i group
+                               ;;
+                       esac
                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.395217 seconds and 4 git commands to generate.