]>
Commit | Line | Data |
---|---|---|
7c689a45 | 1 | #!/bin/sh |
2 | ||
3 | [ -f /etc/sysconfig/rpm ] && . /etc/sysconfig/rpm | |
4 | [ -z "$RPM_SCRIPTVERBOSITY" ] && RPM_SCRIPTVERBOSITY=5 | |
5 | ||
1257c400 | 6 | if [ -x /usr/bin/banner.sh ]; then |
7 | BANNERCMD="/usr/bin/banner.sh " | |
8 | BANNERPARA="-s -M user-group.error" | |
9 | else | |
10 | BANNERCMD="cat" | |
11 | BANNERPARA="" | |
12 | fi | |
13 | ||
7c689a45 | 14 | if [ "$1" = user -o "$1" = group ]; then |
15 | MODE=$1 | |
16 | else | |
1257c400 | 17 | echo ERROR | $BANNERCMD $BANNERPARA |
7c689a45 | 18 | exit 2 |
19 | fi | |
20 | shift | |
21 | ||
1257c400 | 22 | bannercmd() |
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 | 35 | testrm() |
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 | ||
47 | if [ "$1" = "testrm" ]; then | |
48 | testrm $2 | |
49 | exit $? | |
50 | elif [ "$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 || : |
54 | fi | |
13f70a2c JK |
55 | elif [ "$MODE" = "user" -a "$1" = "addtogroup" ]; then |
56 | USER=$2 | |
57 | GROUP=$3 | |
58 | GROUPS=`id -n -G $USER | sed -e's/^[^ ]* //;s/ /,/g'` | |
59 | if ! echo ",$GROUPS," | grep -q ",$GROUP," ; then | |
1257c400 | 60 | echo "Adding user $USER to group $GROUP" | `bannercmd "${MODE}mod-$USER"` |
13f70a2c JK |
61 | usermod -G "$GROUPS,$GROUP" $USER |
62 | fi | |
7c689a45 | 63 | else |
64 | echo ERROR | |
65 | exit 2 | |
66 | fi |