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

156 lines
No EOL
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

```
#!/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
```