Magellan Linux

Contents of /trunk/mage/usr/lib/mage/mgroupadd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1273 - (show annotations) (download)
Wed Apr 27 09:45:07 2011 UTC (13 years ago) by niro
File size: 1706 byte(s)
-support busybox out-of-the-box
1 #!/bin/bash
2 # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mgroupadd,v 1.4 2005-06-01 15:48:38 niro Exp $
3
4 # include all needed files
5 [ -f /etc/mage.rc.global ] && source /etc/mage.rc.global
6 [ -f ${MAGERC} ] && source ${MAGERC}
7 [ -f ${MLIBDIR}/mage4.functions.sh ] && source ${MLIBDIR}/mage4.functions.sh
8
9 print_usage()
10 {
11 echo "$(basename $0 .sh) adds groups to /etc/group."
12 echo " USAGE: $(basename $0 .sh) -o OPTIONS GROUP_NAME .."
13 echo
14 echo " OPTIONS: -o \"OPTS\"all options from /usr/sbin/groupadd can be used."
15 echo
16 echo " Examples:"
17 echo " $(basename $0 .sh) -o \"-g 22\" sshd"
18 echo
19 }
20
21 busybox_fix_group_opts()
22 {
23 local i
24 local FIXED_GROUP_OPTS
25
26 for i in $*
27 do
28 case $1 in
29 -r) FIXED_GROUP_OPTS+=" -S" ;;
30 *) FIXED_GROUP_OPTS+=" $1" ;;
31 esac
32 shift
33 done
34
35 echo "${FIXED_GROUP_OPTS}"
36 }
37
38 while getopts "o:-" opt ; do
39 case "${opt}" in
40 o)
41 GROUP_OPTS="${OPTARG}"
42 ;;
43
44 -) break
45 ;;
46
47 *)
48 print_usage
49 exit 1
50 ;;
51 esac
52 done
53 shift $(($OPTIND - 1))
54
55 #exit if $1 is zero
56 if [ -z "$1" ]
57 then
58 print_usage
59 exit 1
60 fi
61
62 GROUP_TO_ADD="$1"
63
64 # busybox support needed?
65 if need_busybox_support addgroup
66 then
67 echo " Adding group '${GROUP_TO_ADD}' ..."
68 addgroup $(busybox_fix_group_opts ${GROUP_OPTS}) "${GROUP_TO_ADD}"
69
70 # normal systems
71 else
72 #start nscd to cache /etc/group
73 $(which nscd) -i group
74 # get the info
75 my_group="$(getent group ${GROUP_TO_ADD})"
76
77 # if above entries are empty the user/group does not exist
78 if [ -z "${my_group}" ]
79 then
80 echo " Adding group '${GROUP_TO_ADD}' ..."
81 groupadd ${GROUP_OPTS} "${GROUP_TO_ADD}"
82 else
83 echo " Modifing group '${GROUP_TO_ADD}' ..."
84 groupmod ${GROUP_OPTS} "${GROUP_TO_ADD}"
85 fi
86 fi