]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm-user_group.sh
- obsolete
[packages/rpm.git] / rpm-user_group.sh
index 0d524af3ac65b52506bd5307526c6fd5de247921..ee662e2153360dced797a5a51348aee562a0dd83 100644 (file)
@@ -3,6 +3,14 @@
 [ -f /etc/sysconfig/rpm ] && . /etc/sysconfig/rpm
 [ -z "$RPM_SCRIPTVERBOSITY" ] && RPM_SCRIPTVERBOSITY=5
 
+if [ -x /usr/bin/banner.sh ]; then
+       BANNERCMD="/usr/bin/banner.sh "
+       BANNERPARA="-s -M user-group.error"
+else
+       BANNERCMD="cat"
+       BANNERPARA=""
+fi
+
 if [ "$1" = user -o "$1" = group ]; then
        MODE=$1
 else
@@ -11,9 +19,22 @@ else
 fi
 shift
 
+bannercmd()
+{
+       if [ "$BANNERCMD" = cat ]; then
+               echo cat
+       else
+               if [ "$RPM_SCRIPTVERBOSITY" -lt 2 ]; then
+                       echo "$BANNERCMD -M $1"
+               else
+                       echo "$BANNERCMD -s -M $1"
+               fi
+       fi
+}
+
 testrm()
 {
-       [ "$RPM_USERDEL" != yes ] && return 1
+       [ "$RPM_USERDEL" != yes ] || [ ! -x /bin/rpm ] && return 1
        [ -z "$1" ] && return 2
        rpm -q --whatprovides "${MODE}($1)" >/dev/null 2>&1
        # no package Provides it (strange)
@@ -28,16 +49,29 @@ if [ "$1" = "testrm" ]; then
        exit $?
 elif [ "$1" = del ]; then
        if testrm $2; then
-               [ "$RPM_SCRIPTVERBOSITY" -lt 2 ] || echo "Removing $MODE $2"
+               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
+               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
-           [ "$RPM_SCRIPTVERBOSITY" -lt 2 ] || echo "Adding user $USER to group $GROUP"
-           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.026383 seconds and 4 git commands to generate.