#!/bin/bash DO_JSON=0 MY_PATH=$(dirname $0) MY_USER="unknown" MY_UID="unknown" MY_GID="unknown" MY_GROUPS="unknown" set_user_info() { USER_NAME=${1} OUTPUT=$(id ${USER_NAME} 2>/dev/null) if [ $? -eq 0 ]; then MY_UID=$(echo ${OUTPUT} | cut -d' ' -f1 | cut -d'=' -f2 | cut -d'(' -f1) MY_GID=$(echo ${OUTPUT} | cut -d' ' -f2 | cut -d'=' -f2 | cut -d'(' -f1) MY_GROUPS=$(echo ${OUTPUT} | cut -d' ' -f3 | cut -d'=' -f2) fi } output_results_json() { echo "{" echo " \"username\": \"${MY_USER}\"," echo " \"uid\": \"${MY_UID}\"," echo " \"gid\": \"${MY_GID}\"," echo " \"groups\": [\"${MY_GROUPS}\"]" echo "}" } output_results() { do_json=${1} if [ ${do_json} -eq 1 ]; then output_results_json else echo "username:${MY_USER}" echo "uid:${MY_UID}" echo "gid:${MY_GID}" echo "groups:${MY_GROUPS}" fi } ##### MAIN ##### source ${MY_PATH}/general_funcs.bash while getopts "ju:" opt; do case ${opt} in u) MY_USER=${OPTARG} ;; j) DO_JSON=1 ;; esac done set_user_info ${MY_USER} output_results ${DO_JSON} exit 0