엘카

#!/bin/bash
 
### 계정 홈 디렉토리 ###
home="/home" # 앞 슬래쉬 / 뒤는 생략
### httpd.conf 경로 ###
vhost="/usr/local/apache/conf/extra/httpd-vhosts.conf"
### apachectl ###
apachectl="/usr/local/apache/bin/apachectl"
### public_html  ###
www=public_html
### 이메일 ###
email="[email protected]"
### 아파치 그룹 ###
group=daemon
 
hr="=====================================================\n"
 
### 선택 ###
#echo -e "$hr\n [1] 계정을 생성합니다.
# [2] VirtualHost에 추가합니다."
 
 
### 계정 입력 ###
echo -e "${hr}계정 명을 입력해주세요."
read id
echo -e "${hr}비밀번호를 입력해주세요."
read pw
 
 
### 입력한 정보가 맞습니까? ###
echo -e "${hr}계정 이름: $id
비밀번호: $pw
 입력하신 정보가 맞습니까? [y/N]:"
read check
if [ $check != "y" ] && [ $check != "Y" ];then
 exit
fi
adduser $id
echo "$pw" | passwd --stdin "$id"
echo -e "${hr}계정이 추가되었습니다."
 
 
### domain, public_html ###
echo -e "${hr}1. $home/$id/$www 디렉토리를 생성합니다.
2. 웹 디렉토리는 701 권한이 필요하며 이를 위해 /home/$id/ 디렉토리를 701 권한으로 변경합니다.
 실행하시겠습니까? [y/N]:"
read check
if [ $check != "y" ] && [ $check != "Y" ];then
 exit
fi
echo -e "${hr}$home/$id 디렉토리 권한을 변경합니다."
chmod 710 $home/$id
chgrp $group $home/$id
echo -e "${hr}$home/$id/$www 디렉토리를 생성합니다."
mkdir $home/$id/$www
chown $id $home/$id/$www
chgrp $id $home/$id/$www
chmod 755 $home/$id/$www
 
 
### VirtualHost ###
echo -e "${hr}$vhost 파일에 VirtualHost 설정을 추가합니다.
Apache를 재시작합니다.
 도메인을 입력해주세요 [elkha.kr] 취소 [n]:"
read domain
if [ $domain = "n" ] || [ $domain = "N" ] || [ $domain = "" ];then
 exit
fi
echo -e "${hr}
### $id ###
<VirtualHost *>
 ServerAdmin $email
 DocumentRoot $home/$id/$www
 ServerName $domain
 ServerAlias *.$domain
 php_admin_value doc_root $home/$id
 php_admin_value user_dir $home/$id/$www
</VirtualHost>
 
 입력하신 정보가 맞습니까? [y/N]:"
read check
if [ $check != "y" ] && [ $check != "Y" ];then
 exit
fi
 
echo "
 
### $id ###
<VirtualHost *>
 ServerAdmin $email
 DocumentRoot $home/$id/$www
 ServerName $domain
 ServerAlias *.$domain
 php_admin_value doc_root $home/$id
 php_admin_value user_dir $home/$id/$www
</VirtualHost>" >> $vhost
 
$apachectl restart
 
 
echo -e "${hr}$vhost 파일을 수정하였습니다."

웹 디렉토리를 710 권한으로 변경