Docs/shell/添加用户/adduser.sh.md
2022-10-18 16:59:37 +08:00

4.8 KiB
Raw Blame History

#!/bin/bash

##Edit by wangsuipeng
##2016/08/30

##用法bash Adduser.sh 用户uid 用户名 项目名 
##添加应用用户,减少无意义的重复劳动 

#GRP=/etc/group
#PSW=/etc/passwd
SD=/etc/sudoers
PRO=/opt/appl

# 应用用户UID
PRJUID=$1

# 应用用户名
USERNAME=$2

# 项目名
PRJNAME=$3

echo "应用用户名最好小于等于8个字符且不带下划线"
HM=/home/$USERNAME/.bash_profile

## Add the USERNAME to opmm
SUDOERS()
{
	if egrep -q '^opmm\b' $SD;then
		sed -i "/^opmm/ s/$/,\/bin\/su - $USERNAME/" $SD
	else
		sed -i "/^root/a opmm\tALL=(ALL)\tNOPASSWD: " $SD
		sed -i "/^opmm/ s/$/\/bin\/su - $USERNAME/" $SD
	fi
}

## Config the TOMCAT
TCONF()
{
	sed -i "/^PATH/i TOMCAT_HOME=$PRO\/$PRJNAME\/tomcat" $HM
	sed -i "/^PATH/ s/$/:\$TOMCAT_HOME/" $HM
	echo 'cd $TOMCAT_HOME'>> $HM
	echo -e '\033[32;1mDownload the tomcat8.0 now ! Please wait a moment ...\033[0m'
	wget http://soft.iboxpay.com/soft/java/apache-tomcat-8.0.32.tar.gz >/dev/null 2>&1
	tar zxvf apache-tomcat-8.0.32.tar.gz >/dev/null 2>&1
	rm -rf apache-tomcat-8.0.32.tar.gz
	ln -s apache-tomcat-8.0.32 tomcat
	sed -i 's#Connector port="8080" protocol="HTTP/1.1"#Connector port="'$PORT'" protocol="HTTP/1.1"#' $PRO/$PRJNAME/tomcat/conf/server.xml
	cd tomcat
}

## Config and Check the JDK
JCONF()
{
	if egrep -q '^TOMCAT_HOME' $HM;then
		sed -i "/^TOMCAT_HOME/a JAVA_HOME=$PRO\/$PRJNAME\/tomcat\/jdk" $HM
		sed -i "/^PATH/ s/$/:\$JAVA_HOME\/bin/" $HM
	else
		sed -i "/^PATH/a JAVA_HOME=$PRO\/$PRJNAME\jdk\nPATH=\$PATH:\$JAVA_HOME\/bin" $HM 
	fi
	cd $PRO/ && chown -R $USERNAME:fspfappl $PRJNAME
	su - $USERNAME -c "java -version" > /dev/null 2>&1
	if [ "$?" == 0 ];then
        echo -e "\033[32;1mCongratulations !! The JDK is ok now !\033[0m"
	else
        echo -e "\033[31;1;5moh no ! it has something wrong !! You need to check !\033[0m"
	fi
}

## The main
if [ $# -ne 3 ];then
	echo 'Please make sure that the disk has already add!!'
	echo -e '\033[31;1mUSEAGE:bash Adduser.sh PRJUID USERNAME PRJNAME\033[0m'
	echo -e 'PRJUID:The UID of The User UID!\nUSERNAME:The Username of Project\nPRJNAME:The Name of Project'
	exit 1
else
	# Add the USERNAME
	useradd -u $PRJUID -g 1500 $USERNAME
	#sed -i "/^PATH/a TOMCAT_HOME=\/opt\/appl\/$PRJNAME\/tomcat\nJAVA_HOME=\/opt\/appl\/$PRJNAME\/tomcat\/jdk\nPATH=\$PATH:\$JAVA_HOME/bin:\$TOMCAT_HOME" $HM
	SUDOERS
	
	# Create the base of project
	mkdir -p $PRO/$PRJNAME && chmod 755 $PRO && cd $PRO/$PRJNAME
	
	# The project port
	echo -e '\033[32;1mThe project may need a port !\nIf you do not input a port , it will use 8080\033[0m'
	read -p "The port:[8080]" PORT
	${PORT:-8080}&&echo -e 'The Project $PRJNAME use the \033[32;5;1mPort $PORT\033[0m !'
	
	# Open the port
	iptables -I INPUT 1 -m state --state NEW -m tcp -p tcp --dport $PORT -j ACCEPT
	/etc/init.d/iptables save
	service iptables restart
	
	# Download the tomcat or not
	# Default tomcat 8 X64
	echo -e "\033[32;1mYou can get jboss4/8 , tomcat 7/8 , jdk 1.7/1.8 i586 and jre 1.7 from http://soft.iboxpay.com/soft/java !\033[0m"
	echo -e "\033[33;1mWARNING!!!If you need jdk1.6 , please input no!! You can get the tomcat 7 like this\033[0m"
	echo -e "\033[32;5;1m\n\twget http://soft.iboxpay.com/soft/java/apache-tomcat-7.0.70.tar.gz \033[0m"
	echo -e "\033[32;1mDo you need tomcat 8???\033[0m"
	read -p "yes or no[Default:yes]" TV
	: ${TV:='y'}
	case "$TV" in
		Y|yes|y|YES) 
			TCONF
			;;
		N|no|n|NO)
			echo "You can do something later!"
			;;
		*) 
			echo -e "\033[31;1;5mAre you kidding me ???\033[0m"
			exit 1
			;;
	esac
	
	# Download the jdk or not
	# Default jdk1.8
	echo -e "\t\033[33;1m################\n\t+ 1.jdk1.6 x64 +\n\t+ 2.jdk1.7 x64 +\n\t+ 3.jdk1.8 x64 +\n\t+ 4.other      +\n\t################\033[0m"
	read -p "Please input the version of the jdk:1 or 2 or 3 or 4:" JV
	: ${JV:='jdk1.8'}
	case "$JV" in
		1|jdk1.6|6|1.6) 
			wget http://soft.iboxpay.com/soft/java/jdk1.6.0_45.tgz >/dev/null 2>&1
			echo -e '\033[32;1mDownload the jdk1.6 now ! Please wait a moment ...\033[0m'
			tar zxvf jdk1.6.0_45.tgz >/dev/null 2>&1
			rm -rf jdk1.6.0_45.tgz
			ln -s jdk1.6.0_45 jdk
			JCONF
			;;
		2|jdk1.7|7|1.7) 
			wget http://soft.iboxpay.com/soft/java/jdk-7u80-linux-x64.tar.gz >/dev/null 2>&1
			echo -e '\033[32;1mDownload the jdk1.7 now ! Please wait a moment ...\033[0m'
			tar zxvf jdk-7u80-linux-x64.tar.gz >/dev/null 2>&1
			rm -rf jdk-7u80-linux-x64.tar.gz
			ln -s jdk1.7.0_80 jdk
			JCONF
			;;
		3|jdk1.8|8|1.8) 
			wget http://soft.iboxpay.com/soft/java/jdk-8u45-linux-x64.tar.gz >/dev/null 2>&1
			echo -e '\033[32;1mDownload the jdk1.8 now ! Please wait a moment ...\033[0m'
			tar zxvf jdk-8u45-linux-x64.tar.gz >/dev/null 2>&1
			rm -rf jdk-8u45-linux-x64.tar.gz
			ln -s jdk1.8.0_45 jdk
			JCONF
			;;
		4|other|o|O) 
			echo "You can choose aother software later!"
			;;
		*) 
			echo -e "\033[311;5mAre you kidding me ???\033[0m"
			exit 1
			;;
	esac
fi