add_new_user.sh: add user 'marcus'. some other changes..
This commit is contained in:
parent
152e73be38
commit
c0ff8d3061
127
add_new_user.sh
127
add_new_user.sh
@ -1,7 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
script_name="$(basename $(realpath $0))"
|
||||
working_dir="$(dirname $(realpath $0))"
|
||||
|
||||
conf_file="${working_dir}/conf/${script_name%%.*}.conf"
|
||||
|
||||
LOCK_DIR="/tmp/$(basename $0).$$.LOCK"
|
||||
log_file="${LOCK_DIR}/${script_name%%.*}.log"
|
||||
|
||||
|
||||
|
||||
# -------------
|
||||
# --- Some Variables
|
||||
# -------------
|
||||
|
||||
replace_files=".bashrc .bash_logout .profile .vimrc"
|
||||
|
||||
templates_base_dir="${working_dir}/supported-files/user_templates"
|
||||
templates_all_dir="${templates_base_dir}/all"
|
||||
|
||||
sudo_users="
|
||||
sysadm
|
||||
localadmin
|
||||
chris
|
||||
wadmin
|
||||
ilker
|
||||
ckubu
|
||||
alex
|
||||
alis
|
||||
defa
|
||||
init
|
||||
marcus
|
||||
"
|
||||
|
||||
|
||||
|
||||
# -------------
|
||||
# --- Some functions
|
||||
# -------------
|
||||
|
||||
clean_up() {
|
||||
|
||||
# Perform program exit housekeeping
|
||||
rm -rf "$LOCK_DIR"
|
||||
blank_line
|
||||
exit $1
|
||||
}
|
||||
|
||||
blank_line() {
|
||||
if $terminal ; then
|
||||
echo ""
|
||||
fi
|
||||
}
|
||||
|
||||
# - Check if a given array (parameter 2) contains a given string (parameter 1)
|
||||
# -
|
||||
containsElement () {
|
||||
local e
|
||||
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
|
||||
return 1
|
||||
}
|
||||
|
||||
|
||||
|
||||
# ----------
|
||||
# - Jobhandling
|
||||
# ----------
|
||||
|
||||
# - Run 'clean_up' for signals SIGHUP SIGINT SIGTERM
|
||||
# -
|
||||
trap clean_up SIGHUP SIGINT SIGTERM
|
||||
|
||||
# - Create lock directory '$LOCK_DIR"
|
||||
#
|
||||
mkdir "$LOCK_DIR"
|
||||
|
||||
|
||||
|
||||
# ----------
|
||||
# - Some checks ..
|
||||
# ----------
|
||||
|
||||
if [[ $# -lt 1 ]] ; then
|
||||
echo ""
|
||||
echo " No username given on comand line."
|
||||
@ -9,9 +88,21 @@ if [[ $# -lt 1 ]] ; then
|
||||
exit
|
||||
fi
|
||||
|
||||
# - Running in a terminal?
|
||||
# -
|
||||
if [[ -t 1 ]] ; then
|
||||
terminal=true
|
||||
else
|
||||
terminal=false
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# ----------
|
||||
# - Some pre-script tasks ..
|
||||
# ----------
|
||||
|
||||
user_name=$1
|
||||
#password=$2
|
||||
#password=${password:="test100"}
|
||||
|
||||
if [[ -z "$2" ]]; then
|
||||
password_needed=true
|
||||
@ -21,11 +112,6 @@ else
|
||||
password=$2
|
||||
fi
|
||||
|
||||
replace_files=".bashrc .bash_logout .profile .vimrc"
|
||||
|
||||
templates_base_dir="${working_dir}/supported-files/user_templates"
|
||||
templates_all_dir="${templates_base_dir}/all"
|
||||
|
||||
if [[ -f "/etc/adduser.conf" ]]; then
|
||||
. /etc/adduser.conf
|
||||
home_base_dir="$DHOME"
|
||||
@ -42,6 +128,17 @@ if [[ $min_uid -lt 1001 ]] ; then
|
||||
min_uid=1001
|
||||
fi
|
||||
|
||||
# array of authorized sudo users
|
||||
#
|
||||
declare -a sudo_users_arr
|
||||
for _val in $sudo_users ; do
|
||||
sudo_users_arr+=("$_val")
|
||||
done
|
||||
|
||||
|
||||
# ==========
|
||||
# - Begin Main Script
|
||||
# ==========
|
||||
|
||||
# - Create user if not exists
|
||||
# -
|
||||
@ -211,6 +308,12 @@ if $password_needed ; then
|
||||
elif [[ "$user_name" = 'wadmin' ]]; then
|
||||
perl -i -n -p -e "s#^(${user_name}):[^:]+:(.+)#\1:\\\$6\\\$vaVNOPYp\\\$RbV6/phKDZRSa4TQGlJVOF/HQqyxAK7BeQmir8Kr8pwy7ATlHGvcPzJkuldNNp4O4t2q3EJRW2uVpjsng4ZhH1:\2#" /etc/shadow
|
||||
|
||||
|
||||
# - marcus Opferperspektive
|
||||
# -
|
||||
elif [[ "$user_name" = 'marcus' ]]; then
|
||||
perl -i -n -p -e "s#^(${user_name}):[^:]+:(.+)#\1:\\\$6\\\$SPnbZ2Gcf.4iHz93\\\$Vp7fg/xCGls4cPJIiLR5Ogxm2U38RPpPgHLaLIJiOe.PekJCuRsvRLBZLITec2JQhdVTvqpmKURUZrKdXs62z0:\2#" /etc/shadow
|
||||
|
||||
# - root
|
||||
# -
|
||||
elif [[ "$user_name" = 'root' ]]; then
|
||||
@ -296,9 +399,13 @@ fi
|
||||
chmod 700 ${home_dir}/.ssh
|
||||
chown -R ${user_name}:${user_name} ${home_dir}/.ssh
|
||||
|
||||
if [[ "$user_name" = 'sysadm' ]] || [[ "$user_name" = 'localadmin' ]] || [[ "$user_name" = 'chris' ]] || [[ "$user_name" = 'wadmin' ]] || [[ "$user_name" = 'ilker' ]] || [[ "$user_name" = 'ckubu' ]] || [[ "$user_name" = 'alex' ]] || [[ "$user_name" = 'alis' ]] || [[ "$user_name" = 'defa' ]] || [[ "$user_name" = 'init' ]] ; then
|
||||
usermod -a -G sudo ${user_name}
|
||||
fi
|
||||
|
||||
# Add authorized users to the sudoers group
|
||||
#
|
||||
for __user in ${sudo_users_arr[@]} ; do
|
||||
usermod -a -G sudo ${__user}
|
||||
done
|
||||
|
||||
#ls -al ${home_dir}/.ssh
|
||||
echo ""
|
||||
echo -e " User \033[1m${user_name}\033[m added:"
|
||||
|
Loading…
Reference in New Issue
Block a user