]> git.pld-linux.org Git - packages/rpm.git/blame - rpm-user_group.sh
- adjusted for updated pl.po patch
[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
e88c759f 17 echo ERROR
7c689a45 18 exit 2
19fi
20shift
21
1257c400 22bannercmd()
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 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
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 76else
77 echo ERROR
78 exit 2
79fi
This page took 0.06615 seconds and 4 git commands to generate.