#!/bin/bash # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mgroupadd,v 1.4 2005-06-01 15:48:38 niro Exp $ # include all needed files [ -f /etc/mage.rc.global ] && source /etc/mage.rc.global [ -f ${MAGERC} ] && source ${MAGERC} [ -f ${MLIBDIR}/mage4.functions.sh ] && source ${MLIBDIR}/mage4.functions.sh print_usage() { echo "$(basename $0 .sh) adds groups to /etc/group." echo " USAGE: $(basename $0 .sh) -o OPTIONS GROUP_NAME .." echo echo " OPTIONS: -o \"OPTS\"all options from /usr/sbin/groupadd can be used." echo echo " Examples:" echo " $(basename $0 .sh) -o \"-g 22\" sshd" echo } busybox_fix_group_opts() { local i local FIXED_GROUP_OPTS for i in $* do case $1 in -r) FIXED_GROUP_OPTS+=" -S" ;; *) FIXED_GROUP_OPTS+=" $1" ;; esac shift done echo "${FIXED_GROUP_OPTS}" } while getopts "o:-" opt ; do case "${opt}" in o) GROUP_OPTS="${OPTARG}" ;; -) break ;; *) print_usage exit 1 ;; esac done shift $(($OPTIND - 1)) #exit if $1 is zero if [ -z "$1" ] then print_usage exit 1 fi GROUP_TO_ADD="$1" # busybox support needed? if need_busybox_support addgroup then echo " Adding group '${GROUP_TO_ADD}' ..." addgroup $(busybox_fix_group_opts ${GROUP_OPTS}) "${GROUP_TO_ADD}" # normal systems else #start nscd to cache /etc/group $(which nscd) -i group # get the info my_group="$(getent group ${GROUP_TO_ADD})" # if above entries are empty the user/group does not exist if [ -z "${my_group}" ] then echo " Adding group '${GROUP_TO_ADD}' ..." groupadd ${GROUP_OPTS} "${GROUP_TO_ADD}" else echo " Modifing group '${GROUP_TO_ADD}' ..." groupmod ${GROUP_OPTS} "${GROUP_TO_ADD}" fi fi