# 본프로그램을 사용하기에 앞서 몇가지 수정을 해주셔야 합니다.
# 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
Posted by [czar]
,