#!/bin/bash # version: 0.3.6-r12 print_usage() { echo "$(basename $0 .sh) adds users to /etc/passwd." echo " USAGE: $(basename $0 .sh) -o OPTIONS USER_NAME .." echo echo " OPTIONS: -o \"OPTS\"all options from /usr/sbin/useradd can be used." echo echo " Examples:" echo " $(basename $0 .sh) -o \"-u 22 -g sshd -d /var/empty -s /bin/false\" sshd" echo } while getopts "o:-" opt ; do case "${opt}" in o) USER_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 USER_TO_ADD="$1" #start nscd to cache passwd $(which nscd) -i passwd # get the info my_user="$(getent passwd ${USER_TO_ADD})" if [ -z "${my_user}" ] then echo " Adding user '${USER_TO_ADD}' ..." useradd ${USER_OPTS} "${USER_TO_ADD}" else echo " Modifing user '${USER_TO_ADD}' ..." usermod ${USER_OPTS} "${USER_TO_ADD}" fi