]>
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 | |
e88c759f | 17 | echo ERROR |
7c689a45 | 18 | exit 2 |
19 | fi | |
20 | shift | |
21 | ||
1257c400 | 22 | bannercmd() |
23 | { | |
e88c759f | 24 | if [ "$BANNERCMD" = cat ]; then |
1257c400 | 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 || : |
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 | 65 | elif [ "$MODE" = "user" -a "$1" = "addtogroup" ]; then |
45abb9e9 ER |
66 | user="$2" |
67 | group="$3" | |
68 | groups=$(id -n -G $user) | |
69 | if [[ " $groups " != *\ $group\ * ]]; then | |
70 | echo "Adding user $user to group $group" | `bannercmd "${MODE}mod-$user"` | |
71 | for grp in $groups $group; do | |
72 | new="$new${new:+,}$grp" | |
73 | done | |
74 | usermod -G "$new" $user | |
13f70a2c | 75 | fi |
7c689a45 | 76 | else |
77 | echo ERROR | |
78 | exit 2 | |
79 | fi |