강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

11. 호스팅사용자 서버셋팅 쉘스크립트(usersetup)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

11. 호스팅사용자 서버셋팅 쉘스크립트(usersetup)

 

호스팅서버관리를 하다보면 호스팅고객의 신규신청이 있을 때마다 거의 반복적인 서버셋팅을 하게됩니다. 이때에 필자가 권하는 이 스크립트를 이용해 보시면 아주 편리하게 셋팅하실 수 있을 것입니다. 이 스크립트의 이름은 호스팅사용자설정기이며 스크립트 파일이름은 usersetup입니다.

이 스크립트에서 하게되는 역할은 다음과 같습니다.

             -
호스팅사용자 홈디렉토리 생성 및 퍼미션설정

             - 호스팅사용자가 사용할 가상호스트 셋팅

             - 데이터베이스(Mysql) 사용설정

             - 메일사용을 위한 메일설정

             - 설정적용을 위한 각종 데몬들 재시작

            

참고로 도메인설정기능은 추가하지 않았습니다. 일반적으로 DNS는 다른 서버에 있으므로 그 DNS서버에서 앞에서 소개 및 설명해드린 도메인생성기 domainsetup을 이용하시면 될 것입니다.

 

그럼 이제 이 스크립트의 사용방법을 설명드리도록 하겠습니다.

 

사용형식 : usersetup 파티션명  계정명  그룹명  도메인

 

- usersetup : 스크립트명

- 파티션명 : 이 고객을 수용할 파티션명 ( : home)

             - 계정명 : 이 고객이 사용할 계정명, telnet, ftp접속계정 ( : sskim)

             - 그룹명 : 이 계정이 속할 그룹, 대부분 서비스별로 구분한 그룹(: hostuser)

             - 도메인 : 이 고객이 사용할 도메인 ( : abc.co.kr)

 

실제로 이 스크립트를 사용하면 호스팅고객에게 필요한 계정셋팅과 홈디렉토리구성 및 퍼미션설정, 데이터베이스 사용을 위한 Mysql DB user설정 그리고 가상호스트 설정, 메일사용을 위한 환경구성등을 매우 간편하게 하실 수 있습니다.

이 프로그램은 두개의 파일로 되어 있습니다. 하나는 usersetup이라는 메인스크립트이고 하나는 Mysql사용설정을 위한 include 파일입니다.

 

이 스크립트의 소스는 다음과 같습니다. 그리고 다운로드는 역시 ftp.superuser.co.kr을 이용하시기 바랍니다.

#!/bin/bash

 

#### 프로그램 명 : 호스팅사용자설정기 V1.0

####

#### 저작권 : 이 프로그램의 저작권은 수퍼유저코리아에 있습니다.

####          이 프로그램의 사용은 허용되나 재배포는 금지합니다.

#### 제작자 : 박성수 (헐렁고수) : papa@superuser.co.kr

#### 메인사이트 : www.superuser.co.kr

#### 주배포사이트 : ftp.superuser.co.kr

 

#  $1 : 파티션명

#  $2 : 계정명 

#  $3 : 그룹명 

#  $4 : 도메인 

 

touch /tmp/httpd.conf_tempfile

 

echo "###  $2 setting....######### "

/usr/sbin/useradd -d /$1/$2 -g $3 $2

mkdir /$1/$2/www

mkdir /$1/$2/www/weblog

mkdir /$1/$2/www_log

mkdir /$1/$2/mysql

chown -R $2:$3 /$1/$2/*

chmod 701 /$1/$2

passwd $2

 

echo "<VirtualHost 211.220.194.248>" >> /tmp/httpd.conf_tempfile

echo "    ServerAdmin $2@$4"    >> /tmp/httpd.conf_tempfile

echo "    DocumentRoot /$1/$2/www"    >> /tmp/httpd.conf_tempfile

echo "    ServerName www.$4"    >> /tmp/httpd.conf_tempfile

echo "    ServerAlias $4"       >> /tmp/httpd.conf_tempfile

echo "#    ErrorLog /$1/$2/www_log/error_log"  >> /tmp/httpd.conf_tempfile

echo "#    CustomLog /$1/$2/www_log/access_log common" >> /tmp/httpd.conf_tempfile

echo "</VirtualHost>"   >> /tmp/httpd.conf_tempfile

cat /tmp/httpd.conf_tempfile >> /usr/local/apache/conf/httpd.conf

 

# 아파치 재시작

echo "아파치를 재시작합니다.  "

/usr/local/apache/bin/apachectl restart

 

## DB입력을 위한 SQL셋팅

vi /usr/local/mysql/bin/mysql_admin_scripts.sql

## DB입력

echo " MYSQL 관리자 암호를 입력해 주십시요."

/usr/local/mysql/bin/mysql -u root -p mysql < /usr/local/mysql/bin/mysql_admin_scripts.sql

 

#mysql reload

echo " MYSQL 관리자 암호를 입력해 주십시요"

/usr/local/mysql/bin/mysqladmin -u root -p reload

 

# 관련서버 restart

/usr/local/apache/bin/apachectl restart

 

## 메일설정

echo $4 >> /etc/mail/local-host-names

echo "webmaster@$4      $2" >> /etc/mail/virtusertable

echo "$4        RELAY" >> /etc/mail/access

echo $4 >> /etc/mail/relay-domains

 

#메일설정 적용을위한 메일관련DB작업

makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable

makemap hash /etc/mail/access < /etc/mail/access

/etc/rc.d/init.d/sendmail restart

 

rm -f /tmp/httpd.conf_tempfile

echo " ##### $2 setting..end ####### "

 

mysql_admin_scripts.sql

create database DB;

insert into db values('localhost','DB','USER','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

insert into user values('localhost','USER',password('PASS'),'N','N','N','N','N','N','N','N','N','N','N',
'N','N','N','N','N','N','N','N','N','N',1,'','','','','','');

이 파일은 Mysql설정시에 사용되는 것으로 설정변경되는 부분은 DB라는 부분과 USER라는 부분, 그리고 PASS라는 부분입니다.

 

참고로 하실 것은 이 프로그램은 RedHat 계열에 맞추어져 있습니다. 그리고 RedHat계열이라 하더라고 파일시스템구성을 표준으로 하지않았다면 실행이 정상적으로 되지않을 수도 있습니다. 가장 일반적이고 보편적인 구성을 참조하여 생성한 것이며 필자 또한 간단하지만 이 스크립트를 아직도 사용하고 있습니다 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,787 개
  • 현재 접속자 :  214 명