]> git.pld-linux.org Git - packages/rpm.git/blame - rpm-user_group.sh
- fix webapps module restart
[packages/rpm.git] / rpm-user_group.sh
CommitLineData
7c689a45 1#!/bin/sh
2
3[ -f /etc/sysconfig/rpm ] && . /etc/sysconfig/rpm
4[ -z "$RPM_SCRIPTVERBOSITY" ] && RPM_SCRIPTVERBOSITY=5
5
1257c400 6if [ -x /usr/bin/banner.sh ]; then
7 BANNERCMD="/usr/bin/banner.sh "
8 BANNERPARA="-s -M user-group.error"
9else
10 BANNERCMD="cat"
11 BANNERPARA=""
12fi
13
7c689a45 14if [ "$1" = user -o "$1" = group ]; then
15 MODE=$1
16else
1257c400 17 echo ERROR | $BANNERCMD $BANNERPARA
7c689a45 18 exit 2
19fi
20shift
21
1257c400 22bannercmd()
23{
24 if [ "$BANNERCMD" == cat ]; then
25 echo cat
26 else
27 if [ "$RPM_SCRIPTVERBOSITY" -lt 2 ]; then
1257c400 28 echo "$BANNERCMD -M $1"
eeb844ab 29 else
30 echo "$BANNERCMD -s -M $1"
1257c400 31 fi
32 fi
33}
34
7c689a45 35testrm()
36{
d0fbac1a 37 [ "$RPM_USERDEL" != yes ] || [ ! -x /bin/rpm ] && return 1
7c689a45 38 [ -z "$1" ] && return 2
39 rpm -q --whatprovides "${MODE}($1)" >/dev/null 2>&1
40 # no package Provides it (strange)
41 [ $? -ne 0 ] && return 0
42 # only current package Provides it
43 [ `rpm -q --whatprovides "${MODE}($1)" | wc -l` -lt 2 ] && return 0
44 return 1
45}
46
47if [ "$1" = "testrm" ]; then
48 testrm $2
49 exit $?
50elif [ "$1" = del ]; then
51 if testrm $2; then
1257c400 52 echo "Removing $MODE $2" | `bannercmd "${MODE}del-$2"`
7c689a45 53 /usr/sbin/${MODE}del $2 || :
89b9c531
ER
54 if [ -x /usr/sbin/nscd ]; then
55 case "${MODE}" in
56 user)
57 /usr/sbin/nscd -i passwd
58 ;;
59 group)
60 /usr/sbin/nscd -i group
61 ;;
62 esac
63 fi
7c689a45 64 fi
13f70a2c 65elif [ "$MODE" = "user" -a "$1" = "addtogroup" ]; then
27f1752f
AM
66 CUSER=$2
67 CGROUP=$3
68 CGROUPS=`id -n -G $CUSER | sed -e's/^[^ ]* //;s/ /,/g'`
69 if ! echo ",$CGROUPS," | grep -q ",$CGROUP," ; then
70 echo "Adding user $CUSER to group $CGROUP" | `bannercmd "${MODE}mod-$CUSER"`
71 usermod -G "$CGROUPS,$CGROUP" $CUSER
13f70a2c 72 fi
7c689a45 73else
74 echo ERROR
75 exit 2
76fi
This page took 0.058014 seconds and 4 git commands to generate.