#!/bin/bash # Script to create a new package user source `which ttPM-funcs` 2>/dev/null || exit 1 usage() { printMsg warning "Usage: `basename $0` pkgName" exit 1 } # Should be run as root checkRoot # Validity checks for arguments and vars # Set default values if neccessary if [ $# -ne 1 ] then usage 1 fi PKG_FULL="$1" # Our groupadd and useradd are restricted to 32 chars PKG="${PKG_FULL:0:32}" # Now convert all to lowercase PKG=`echo $PKG | tr 'A-Z' 'a-z'` # Now convert + to P since shadow does not like + char PKG=`echo $PKG | sed -e "s:+:P:g"` # Now convert @ to S since shadow does not like @ char PKG=`echo $PKG | sed -e "s:@:S:g"` DESC="$PKG_FULL" # Check if the $TT_PKG_USER user and group exist, if not create them if ! find / -maxdepth 0 -group $TT_PKG_USER 2>/dev/null >/dev/null then groupadd -K GID_MIN=$TT_MIN_ID -K GID_MAX=$TT_MAX_ID $TT_PKG_USER || error "Error Creating Group $TT_PKG_USER" printMsg info "Created Group $TT_PKG_USER" fi if ! find / -maxdepth 0 -user $TT_PKG_USER 2>/dev/null >/dev/null then useradd -K UID_MIN=$TT_MIN_ID -K UID_MAX=$TT_MAX_ID -c $TT_PKG_USER -d "${TT_HOME_DIR}/$TT_PKG_USER" -g $TT_PKG_USER -s /bin/bash $TT_PKG_USER || error "Error Creating User $TT_PKG_USER" printMsg info "Created User $TT_PKG_USER" fi # Create the requested user and group if they do not exist if [ "$PKG" != "$TT_PKG_USER" ] then if ! find / -maxdepth 0 -group $PKG 2>/dev/null >/dev/null then groupadd -K GID_MIN=$TT_MIN_ID -K GID_MAX=$TT_MAX_ID $PKG || error "Error Creating Group $PKG" printMsg info "Created Group $PKG" fi if ! find / -maxdepth 0 -user $PKG 2>/dev/null >/dev/null then useradd -K UID_MIN=$TT_MIN_ID -K UID_MAX=$TT_MAX_ID -c "${DESC}" -d "${TT_HOME_DIR}/$PKG_FULL" -g $PKG -G $TT_PKG_USER -s /bin/bash $PKG || error "Error Creating User $PKG" printMsg info "Created User $PKG" fi fi # If the home dir does not exist, create HOME_DIR="$TT_HOME_DIR/$PKG_FULL" if [ ! -d $HOME_DIR ] then install -d ${HOME_DIR} ln -sf $TT_ETC_DIR/bashlogin ${HOME_DIR}/.bash_profile ln -sf $TT_ETC_DIR/bashlogout ${HOME_DIR}/.bash_logout fi chown -R $PKG.$PKG $HOME_DIR 2>/dev/null if [ "x$PKG_FULL" != "x$PKG" ] then printMsg warning "Package User Name changed to $PKG" fi #managePkg $PKG