Contents of /trunk/mage/usr/lib/mage/mgroupadd
Parent Directory | Revision Log
Revision 2268 -
(show annotations)
(download)
Fri Oct 25 06:48:57 2013 UTC (10 years, 11 months ago) by niro
File size: 1899 byte(s)
Fri Oct 25 06:48:57 2013 UTC (10 years, 11 months ago) by niro
File size: 1899 byte(s)
-fixed header
1 | #!/bin/bash |
2 | # $Id$ |
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 | if [[ ! -z ${MROOT} ]] && [[ ${MROOT} != / ]] |
39 | then |
40 | chroot="chroot ${MROOT} " |
41 | else |
42 | chroot="" |
43 | fi |
44 | |
45 | while getopts "o:-" opt ; do |
46 | case "${opt}" in |
47 | o) |
48 | GROUP_OPTS="${OPTARG}" |
49 | ;; |
50 | |
51 | -) break |
52 | ;; |
53 | |
54 | *) |
55 | print_usage |
56 | exit 1 |
57 | ;; |
58 | esac |
59 | done |
60 | shift $(($OPTIND - 1)) |
61 | |
62 | #exit if $1 is zero |
63 | if [ -z "$1" ] |
64 | then |
65 | print_usage |
66 | exit 1 |
67 | fi |
68 | |
69 | GROUP_TO_ADD="$1" |
70 | |
71 | # busybox support needed? |
72 | if need_busybox_support addgroup |
73 | then |
74 | echo -n " Adding group '${GROUP_TO_ADD}'" |
75 | [[ ! -z ${chroot} ]] && echo -n " into MROOT='${MROOT}'" |
76 | echo " ..." |
77 | ${chroot} addgroup -S $(busybox_fix_group_opts ${GROUP_OPTS}) "${GROUP_TO_ADD}" |
78 | |
79 | # normal systems |
80 | else |
81 | # get the info |
82 | my_group="$(${chroot} getent group ${GROUP_TO_ADD})" |
83 | |
84 | # if above entries are empty the user/group does not exist |
85 | if [ -z "${my_group}" ] |
86 | then |
87 | echo -n " Adding group '${GROUP_TO_ADD}'" |
88 | [[ ! -z ${chroot} ]] && echo -n " into MROOT='${MROOT}'" |
89 | echo " ..." |
90 | ${chroot} groupadd -r ${GROUP_OPTS} "${GROUP_TO_ADD}" |
91 | else |
92 | echo -n " Modifing group '${GROUP_TO_ADD}'" |
93 | [[ ! -z ${chroot} ]] && echo -n " in MROOT='${MROOT}'" |
94 | echo " ..." |
95 | ${chroot} groupmod ${GROUP_OPTS} "${GROUP_TO_ADD}" |
96 | fi |
97 | fi |