# 본프로그램을 사용하기에 앞서 몇가지 수정을 해주셔야 합니다.
# mysql 추가및 삭제 부분에서 비번이라고 적힌곳에 자신의 msyql root 비번을 적어주시기 바랍니다.
# 그리고 본 스크립트는 각 서버의 경로를 /var/named /usr/local/apache /usr/local/mysql 기준으로 작성된 것이므로..
# 경로가 틀릴경우 수정을 해주시기 바랍니다.
# 네임서버 셋팅 부분도 자신의 환경에 맞게 수정해주시기 바랍니다.
#File Name : huser
#!/bin/bash
clear
echo "##########################################################"
echo "# #"
echo "# Hostuser Shell Script Road Start. #"
echo "# Program : HostUserAutoSetting ( Hostuser v.0.9) #"
echo "# 제작자 : 김병철 ( happymsg@hanmir.com ) #"
echo "# #"
echo "#========================================================#"
echo "# #"
echo "# 사용방법 : #"
echo "# ./huser 아이디 비번 도메인 #"
echo "# Ex) ./huser happymsg 1234 atpple.com #"
echo "# #"
echo "##########################################################"
echo
select var in "계정추가" "용량제어" "계정삭제" "가상호스트추가" "SMTP메일추가" "Mysql계정및DB추가" "MysqlDB삭제" "네임서버셋팅" "끝내기"
do
if [ "$var" = "계정추가" ]; then
## 사용자 계정 생성
echo "$1 라는 계정 사용자를 추가합니다."
/usr/sbin/useradd $1
echo "--- 비밀번호를 입력해주세요 ---"
echo ""
passwd $1
## 생성된 사용자 디렉토리 소유권및 퍼미션 조정
mkdir /home/$1/public_html
mkdir /home/$1/logs
cp /root/home/index.html /home/$1/public_html
chown $1:$1 /home/$1/public_html
chown $1:$1 /home/$1/logs
chown $1:$1 /home/$1/public_html/index.html
chmod 701 /home/$1/public_html
chmod 701 /home/$1/logs
chmod 701 /home/$1
elif [ "$var" = "용량제어" ]; then
## quota 설정이 되어있어야만 사용가능한거 아시죠? ㅡㅡ;
edquota -u $1
elif [ "$var" = "계정삭제" ]; then
## 계정삭제
userdel -r $1
elif [ "$var" = "가상호스트추가" ]; then
## 아파치 httpd.conf 파일에 가상호스트 부분을 추가함
echo " " >> /etc/httpd/conf/httpd.conf
echo "<VirtualHost 211.202.1.248>" >> /etc/httpd/conf/httpd.conf
echo " DocumentRoot /home/$1/public_html" >> /etc/httpd/conf/httpd.conf
echo " ServerName $3" >> /etc/httpd/conf/httpd.conf
echo " ServerAlias $3 www.$3" >> /etc/httpd/conf/httpd.conf
echo " ErrorLog /home/$1/logs/error_log" >> /etc/httpd/conf/httpd.conf
echo "</VirtualHost>" >> /etc/httpd/conf/httpd.conf
## 아파치 서버 재 구동
/usr/local/apache/bin/apachectl restart
elif [ "$var" = "SMTP메일추가" ]; then
## 메일설정(SMTP)
echo $3 >> /etc/sendmail.cw
echo $3 >> /etc/mail/relay-domains
echo "$3" >> /etc/mail/local-host-names
echo "webmaster@$3 $1" >> /etc/mail/virtusertable
## 메일설정 적용을위한 메일관련DB작업
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
elif [ "$var" = "Mysql계정및DB추가" ]; then
## Mysql 계정 및 DB 생성 이부분은 수정이 필요합니다.
## mysqladmin -uroot -p비번 이렇게 되어있는곳에 mysql root 의 비번을 넣어주세요
/usr/local/mysql/bin/mysqladmin -uroot -p비번 create $1
echo "아래내용을 카피하여 붙이거나 혹은 타이핑 해주세요"
echo ""
echo ""
echo "INSERT INTO user VALUES('localhost', '$1', password('$2'),'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N'); "
echo "INSERT INTO db VALUES('localhost', '$1', '$1', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N'); "
echo "exit"
echo ""
echo ""
/usr/local/mysql/bin/mysql -uroot -p비번 mysql
/usr/local/mysql/bin/mysqladmin -uroot -p비번 reload
## Mysql 데이터를 사용자계정 홈에 쌓이게 합니다.
mkdir /home/$1/.mysql
mv /usr/local/mysql/data/$1 /home/$1/.mysql/
ln -s /home/$1/.mysql/$1 /usr/local/mysql/data/$1
elif [ "$var" = "MysqlDB삭제" ]; then
## Mysql DB를 삭제합니다. (사용자계정에 옴긴 .mysql 폴더또한 삭제)
/usr/local/mysql/bin/mysqladmin -uroot -p비번 drop $1
rm -Rf /home/$1/.mysql
elif [ "$var" = "네임서버셋팅" ]; then
## 네임서버 셋팅
named_conf=/etc/named.conf
echo " " >> $named_conf
echo "zone "$3" {" >> $named_conf
echo " type master;" >> $named_conf
echo " file "$3.zone";" >> $named_conf
echo "};" >> $named_conf
## /var/named/domain.zone파일 생성
## 아래의 부분은 자신의 서버 환경에 맞게 수정하셔야겠죠?
touch /var/named/$3.zone
echo "@ IN SOA ns2.atpple.com. $1.$3. (" >> /var/named/$3.zone
echo " 20000402 ; Serial" >> /var/named/$3.zone
echo " 21600 ; Refresh(6h)" >> /var/named/$3.zone
echo " 900 ; Retry(15min)" >> /var/named/$3.zone
echo " 604800 ; Expire(7d)" >> /var/named/$3.zone
echo " 43200) ; Minimum(12h);" >> /var/named/$3.zone
echo " IN NS ns2.atpple.com." >> /var/named/$3.zone
echo ";" >> /var/named/$3.zone
echo " IN A 211.202.1.248" >> /var/named/$3.zone
echo " IN MX 0 $3." >> /var/named/$3.zone
echo "www IN A 211.202.1.248" >> /var/named/$3.zone
echo " IN MX 0 $3." >> /var/named/$3.zone
## 네임서버 재 구동
killall -HUP named
elif [ "$var" = "끝내기" ]; then
clear
exit 0
else
clear
echo "$var Re Selecte"
fi
done
출처 :http://ttongfly.net/zbxe/?document_srl=43597
# mysql 추가및 삭제 부분에서 비번이라고 적힌곳에 자신의 msyql root 비번을 적어주시기 바랍니다.
# 그리고 본 스크립트는 각 서버의 경로를 /var/named /usr/local/apache /usr/local/mysql 기준으로 작성된 것이므로..
# 경로가 틀릴경우 수정을 해주시기 바랍니다.
# 네임서버 셋팅 부분도 자신의 환경에 맞게 수정해주시기 바랍니다.
#File Name : huser
#!/bin/bash
clear
echo "##########################################################"
echo "# #"
echo "# Hostuser Shell Script Road Start. #"
echo "# Program : HostUserAutoSetting ( Hostuser v.0.9) #"
echo "# 제작자 : 김병철 ( happymsg@hanmir.com ) #"
echo "# #"
echo "#========================================================#"
echo "# #"
echo "# 사용방법 : #"
echo "# ./huser 아이디 비번 도메인 #"
echo "# Ex) ./huser happymsg 1234 atpple.com #"
echo "# #"
echo "##########################################################"
echo
select var in "계정추가" "용량제어" "계정삭제" "가상호스트추가" "SMTP메일추가" "Mysql계정및DB추가" "MysqlDB삭제" "네임서버셋팅" "끝내기"
do
if [ "$var" = "계정추가" ]; then
## 사용자 계정 생성
echo "$1 라는 계정 사용자를 추가합니다."
/usr/sbin/useradd $1
echo "--- 비밀번호를 입력해주세요 ---"
echo ""
passwd $1
## 생성된 사용자 디렉토리 소유권및 퍼미션 조정
mkdir /home/$1/public_html
mkdir /home/$1/logs
cp /root/home/index.html /home/$1/public_html
chown $1:$1 /home/$1/public_html
chown $1:$1 /home/$1/logs
chown $1:$1 /home/$1/public_html/index.html
chmod 701 /home/$1/public_html
chmod 701 /home/$1/logs
chmod 701 /home/$1
elif [ "$var" = "용량제어" ]; then
## quota 설정이 되어있어야만 사용가능한거 아시죠? ㅡㅡ;
edquota -u $1
elif [ "$var" = "계정삭제" ]; then
## 계정삭제
userdel -r $1
elif [ "$var" = "가상호스트추가" ]; then
## 아파치 httpd.conf 파일에 가상호스트 부분을 추가함
echo " " >> /etc/httpd/conf/httpd.conf
echo "<VirtualHost 211.202.1.248>" >> /etc/httpd/conf/httpd.conf
echo " DocumentRoot /home/$1/public_html" >> /etc/httpd/conf/httpd.conf
echo " ServerName $3" >> /etc/httpd/conf/httpd.conf
echo " ServerAlias $3 www.$3" >> /etc/httpd/conf/httpd.conf
echo " ErrorLog /home/$1/logs/error_log" >> /etc/httpd/conf/httpd.conf
echo "</VirtualHost>" >> /etc/httpd/conf/httpd.conf
## 아파치 서버 재 구동
/usr/local/apache/bin/apachectl restart
elif [ "$var" = "SMTP메일추가" ]; then
## 메일설정(SMTP)
echo $3 >> /etc/sendmail.cw
echo $3 >> /etc/mail/relay-domains
echo "$3" >> /etc/mail/local-host-names
echo "webmaster@$3 $1" >> /etc/mail/virtusertable
## 메일설정 적용을위한 메일관련DB작업
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
elif [ "$var" = "Mysql계정및DB추가" ]; then
## Mysql 계정 및 DB 생성 이부분은 수정이 필요합니다.
## mysqladmin -uroot -p비번 이렇게 되어있는곳에 mysql root 의 비번을 넣어주세요
/usr/local/mysql/bin/mysqladmin -uroot -p비번 create $1
echo "아래내용을 카피하여 붙이거나 혹은 타이핑 해주세요"
echo ""
echo ""
echo "INSERT INTO user VALUES('localhost', '$1', password('$2'),'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N'); "
echo "INSERT INTO db VALUES('localhost', '$1', '$1', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N'); "
echo "exit"
echo ""
echo ""
/usr/local/mysql/bin/mysql -uroot -p비번 mysql
/usr/local/mysql/bin/mysqladmin -uroot -p비번 reload
## Mysql 데이터를 사용자계정 홈에 쌓이게 합니다.
mkdir /home/$1/.mysql
mv /usr/local/mysql/data/$1 /home/$1/.mysql/
ln -s /home/$1/.mysql/$1 /usr/local/mysql/data/$1
elif [ "$var" = "MysqlDB삭제" ]; then
## Mysql DB를 삭제합니다. (사용자계정에 옴긴 .mysql 폴더또한 삭제)
/usr/local/mysql/bin/mysqladmin -uroot -p비번 drop $1
rm -Rf /home/$1/.mysql
elif [ "$var" = "네임서버셋팅" ]; then
## 네임서버 셋팅
named_conf=/etc/named.conf
echo " " >> $named_conf
echo "zone "$3" {" >> $named_conf
echo " type master;" >> $named_conf
echo " file "$3.zone";" >> $named_conf
echo "};" >> $named_conf
## /var/named/domain.zone파일 생성
## 아래의 부분은 자신의 서버 환경에 맞게 수정하셔야겠죠?
touch /var/named/$3.zone
echo "@ IN SOA ns2.atpple.com. $1.$3. (" >> /var/named/$3.zone
echo " 20000402 ; Serial" >> /var/named/$3.zone
echo " 21600 ; Refresh(6h)" >> /var/named/$3.zone
echo " 900 ; Retry(15min)" >> /var/named/$3.zone
echo " 604800 ; Expire(7d)" >> /var/named/$3.zone
echo " 43200) ; Minimum(12h);" >> /var/named/$3.zone
echo " IN NS ns2.atpple.com." >> /var/named/$3.zone
echo ";" >> /var/named/$3.zone
echo " IN A 211.202.1.248" >> /var/named/$3.zone
echo " IN MX 0 $3." >> /var/named/$3.zone
echo "www IN A 211.202.1.248" >> /var/named/$3.zone
echo " IN MX 0 $3." >> /var/named/$3.zone
## 네임서버 재 구동
killall -HUP named
elif [ "$var" = "끝내기" ]; then
clear
exit 0
else
clear
echo "$var Re Selecte"
fi
done
출처 :http://ttongfly.net/zbxe/?document_srl=43597