11. 호스팅사용자 서버셋팅 쉘스크립트(usersetup)
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,290 조회
- 0 추천
- 목록
본문
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', |
이 파일은 Mysql설정시에 사용되는 것으로 설정변경되는 부분은 “DB”라는 부분과 “USER”라는 부분, 그리고 “PASS”라는 부분입니다.
참고로 하실 것은 이 프로그램은 RedHat 계열에 맞추어져 있습니다. 그리고 RedHat계열이라 하더라고 파일시스템구성을 표준으로 하지않았다면 실행이 정상적으로 되지않을 수도 있습니다. 가장 일반적이고 보편적인 구성을 참조하여 생성한 것이며 필자 또한 간단하지만 이 스크립트를 아직도 사용하고 있습니다.
관련자료
-
이전
-
다음