Diese Shell (welche in Bash geschrieben ist) stammt weder von mir, noch habe ich diese geschrieben.
Ich habe sie vor einigen Wochen von Phil erhalten und ich release diese nun, weil es langsam nicht mehr sein kann, dass gewisse Personen wie Infinity über 100 Euro für eine simple Installation verlangen.
PS VON PHIL!!:
Quote:
PHIIÖÖLL 06:02
schreib mal noch dazu, dass ich den thread regelmäßig abchecken werde, einfach aufgrund sämtlicher reaktionen, die wieder nach aufmerksamkeit schreien und ich mich darüber freue, wie gewisse personen sich wieder aufregen werden.
wie ich bereits mal gesagt habe, der bumerang kommt bald zurück - bald ist es soweit und mit euch bin ich definitiv noch nicht fertig, zumindestens mit gewissen personen wie downi, daroo und co.
Bevor ihr weiterlest, das hier ist eine kleine Einschau in das was Phil machen wollte bzw. gemacht hat:

So, nun zum Thema Guys !!
Die Shell macht alles für euch, was man braucht.
- 1) Portsnap (fetch/update)
- 2) Pwgen
- 3) Screen
- 4) Python
- 5) Wget
- 6) Libs
- 7) MySQL
- 8) PAE Kernel
- 9) IPFW (Firewall) + Kernel komplimierung
- 10) PF (Packet Filter) + Kernel komplimierung
- 11) SSH Guard
- 12) Apache2
- 13) PHP 5
- 14) PHP 5 Extensions
- 15) Swap
- 16) Systemupdate & Upgrade
--
- 17) System Passwort ändern
- 18) MySQL Passwort setzen
- 19) MySQL Benutzer erstellen
- 20) MySQL Passwort ändern
Die Libs werden automatisch für das System angepasst.
Hat man 32 Bit, lädt er für 32 Bit die Libs runter.
Hat man 64 Bit, lädt er die normalen Libs und die /usr/lib32/ runter und installiert diese, damit man auch auf 64 Bit hosten kann.
Für alles andere ist in der Shell eine kurze Erklärung bei jeder Shell.
Daran denken, dass die Firewall/PF rules angepasst werden müssen unter /usr/local/etc/*.rules
ACHTUNG! : Wenn man 64 Bit hat, muss wget installiert sein, da die /usr/lib32/ über wget geladen werden. !!
Das einzige, was ihr braucht, ist Bash auf dem System.
Das ist eine Shell, installiert wird diese so:
PHP Code:
pkg_add -r bash
rehash
PHP Code:
cd /usr/ports/shells/bash && make install
rehash
Oder halt mit "bash sowieihrsiegenannthabt.sh" ausführen, also wenn ihr ein anderen Namen für die Shell habt.!!
Wenn ihr den PAE, IPFW, ODER PF KERNEL installieren wollt, müsst ihr vorder den /usr/src Ordner laden, der die Kernel beinhaltet.
Das geht so:
Dann geben wir sysinstall ein & gehen auf Configure, dort wählen wir Distrubions aus, dann einma bei src enter drücken, dann bei base ein X und bei sys ein X.
Danach immer auf Ok und von der Main Site bzw. dem Standart FTP Server laden !!! sonst geht das komplimieren nicht, da das destverzeichnis nicht vorhanden ist.
Wenn ihr sie hier kopiert wird es eventuell zu Fehlern kommen, deshalb habe ich sie nochmal bei Pastebin eingefügt.
PHP Code:
#!/bin/bash
# Buildworld Shell
# -----------------
# Credits to aiiR7
# -----------------
# Server, auf dem alle Dateien liegen, die während der Installation benötigt werden.
MAINPAGE="http://www.gamers-worlds.de/aiiR7"
REL=$(uname -r);
KERNEL=$(uname -i);
ARCH=$(uname -m);
# Bin Pfads. Ändere diese nur, wenn sie nicht via "which" erkannt werden.
PORTSNAP=$(which portsnap);
PY=$(which python);
SRC=$(which screen);
PWGEN=$(which pwgen);
MYSQL=$(which mysql);
PW=$(pwgen -s 10);
APACHE=$(which apachectl);
PHP5=$(which php);
SSH=$(which sshguard);
# Kernel Variablen für die IPFW.
IPF="IPFIREWALL IPFIREWALL_VERBOSE IPFIREWALL_VERBOSE_LIMIT=10 IPDIVERT"
# Kernel Variablen für die PF.
PFO="ALTQ ALTQ_CBQ ALTQ_RED ALTQ_RIO ALTQ_HFSC ALTQ_PRIQ ALTQ_NOPCC" # ALTQ
PFD="pf pflog pfsync" # PF
# Anfang der Funktionen.
# Ports werden für alle Pakete gebraucht, die installiert werden sollen.
# Sofern nötig, jede 48 Stunden diese aktualisieren.
function_portsnap()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='portsnap()';
clear;
echo " 1) Ports installieren"
echo " 2) Ports aktualisieren"
read -p "Möchtest du die Ports Installieren oder Updaten?" CHOICE
if [[ "$CHOICE" == 1 ]]
then
echo "Ports werden nun installiert"
$PORTSNAP fetch extract
elif [[ "$CHOICE" == 2 ]]
then
echo "Ports werden installiert und aktualisiert."
$PORTSNAP update;
else
echo "Abbrechen."
return;
fi
}
#----------
# Ein simpler Passwortgenerator. Die Passwörter, die mit diesem generiert werden, werden vorübergehend in einer .tmp Datei gespeichert
# (dient nur zur eigenen Sicherheit und werden nicht missbraucht, da nur der Benutzer "root" auf sie zugreifen kann).
function_pwgen()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_PWGEN()';
clear;
if [[ -e "$PWGEN" ]]
then
clear
echo '----------------------------------------------------'
echo -e "\033[31mPwgen ist bereits installiert.\033[0m";
echo '----------------------------------------------------'
return;
fi
#---
echo "Pwgen wird nun installiert"
cd /usr/ports/sysutils/pwgen/
make install clean
clear
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m"
echo '----------------------------------------------------'
echo
echo ' - Bitte einmal "rehash" eingeben - '
echo
}
#----------
# Sollte installiert sein, wenn der SSHGuard aktiv sein soll. Natürlich kann Screen auch für andere anwendungen hilfreich sein.
# Für Sämtliche Scripts/Shells empfehle ich Cronjob, da Screen zu viele Resourcen frisst.
function_screen()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_screen()';
clear;
if [[ -e "$SRC" ]]
then
clear
echo '----------------------------------------------------'
echo -e "\033[31mScreen ist bereits installiert.\033[0m";
echo '----------------------------------------------------'
return;
fi
#---
echo "Screen wird nun installiert."
cd /usr/ports/sysutils/screen/
make install clean
clear
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
echo ' - Bitte einmal "rehash" eingeben - '
echo
}
#----------
# Pyton wird von der make.py benötigt. Python muss nicht installiert werden, wenn die in sh/bash geschriebene make vorliegt.
function_python()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_python()';
clear;
if [[ -e "$PY" ]]
then
clear
echo '----------------------------------------------------'
echo -e "\033[31mPython ist bereits installiert.\033[0m";
echo '----------------------------------------------------'
return;
fi
#---
echo "Python wird nun installiert."
cd /usr/ports/lang/python
make install clean
clear
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
echo ' - Bitte einmal "rehash" eingeben - '
echo
}
#----------
# Sollte installiert werden, wenn man auf einem 64-Bit System administriert und anschließend die Libs runterladen und installieren möchte (wegen den lib32 Librarys).
function_wget()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_libs()';
clear;
echo "Wget wird nun installiert."
cd /usr/ports/ftp/wget
make config
make install
clear
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
echo ' - Bitte einmal "rehash" eingeben - '
echo
}
#----------
# Hier werden die benötigten Libs für den Gameserver runtergeladen. Falls das System ein 64-Bit System ist, werden anschließend die lib32 Librarys geladen und installiert.
# Die benötigten Symlinks werden auch erstellt.
function_libs()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_libs()';
clear;
echo "Libs werden runtergeladen und entpackt."
cd /lib
fetch $MAINPAGE/libs.tar.gz
tar zxvf libs.tar.gz
rm libs.tar.gz
if [[ $ARCH == "amd64" ]]
then
mkdir -p /tmp/usr/lib32/dist
cd /tmp/usr/lib32/dist
wget ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/8.2-RELEASE/lib32/*
chmod 777 install.sh
./install.sh
cd /usr/lib32
ln -s libmd.so.5 libmd.so.4
ln -s libz.so.5 libz.so.4
fi
clear
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
}
#----------
# MySQL 5.5 wird installiert.
function_mysql()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_mysql()';
clear;
if [[ -e "$MYSQL" ]]
then
clear
echo '----------------------------------------------------'
echo -e "\033[31mMySQL ist bereits installiert.\033[0m";
echo '----------------------------------------------------'
else
#---
echo "MySQL wird nun installiert."
cd /usr/ports/databases/mysql55-server/
make WITH_XCHARSET=all BUILD_STATIC=yes BUILD_OPTIMIZED=yes install clean
chown -R mysql /var/db/mysql/ && chgrp -R mysql /var/db/mysql/
echo 'mysql_enable="YES"' >> /etc/rc.conf
clear
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
fi
}
#----------
# Diese Funktion installiert den PAE Kernel und sollte nur unter 32 Bit verwendet werden.
function_paekernel()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_paekernel()';
clear;
if [[ ! -e /usr/src/UPDATING ]]
then
clear
echo '----------------------------------------------------'
echo -e "\033[31mSource wurde noch nicht installiert\033[0m";
echo '----------------------------------------------------'
return;
fi
#--
echo 'ident PAE' >> /usr/src/sys/i386/conf/PAE
echo "Preparing and running buildworld."
cd /usr/src
make buildkernel KERNCONF=PAE && make installkernel KERNCONF=PAE
clear
echo
echo '----------------------------------------------------'
echo 'Bitte unbedingt Rebooten, sofern die Installation'
echo 'erfolgreich war.'
echo '----------------------------------------------------'
echo
}
#----------
# Hier wird der aktuelle Kernel kopiert und anschließend die IPFW in den kopierten Kernel eingebaut. Anschließend kompilieren wir ihn.
# Die Firewall Rules werden vom Fetchserver geladen.
function_firewall()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_firewall()';
clear;
if [[ ! -e /usr/src/UPDATING ]]
then
clear
echo '----------------------------------------------------'
echo -e "\033[31mSource wurde noch nicht installiert\033[0m";
echo '----------------------------------------------------'
return;
fi
#--
echo "Die Firewall (IPFW) wird nun installiert."
cd /usr/src/sys/$ARCH/conf
cp $KERNEL IPFW$KERNEL
if [[ $KERNEL == "PAE" ]]
then
echo 'ident IPFWPAE' >> IPFW$KERNEL
elif [[ $KERNEL == "PFPAE" ]]
then
echo 'ident IPFWPFPAE' >> IPFW$KERNEL
else
echo 'ident IPFW' >> IPFW$KERNEL
fi
for i in $IPF
do
echo "options $i" >> IPFW$KERNEL
done
cd /usr/src
make buildkernel KERNCONF=IPFW$KERNEL && make installkernel KERNCONF=IPFW$KERNEL
echo 'firewall_enable="YES"' >> /etc/rc.conf
echo 'firewall_script="/usr/local/etc/ipfw.rules"' >> /etc/rc.conf
cd /usr/local/etc/
fetch $MAINPAGE/ipfw.rules
clear
echo
echo '----------------------------------------------------'
echo 'Die IPFW wurde in den $KERNEL KERNEL eingebaut'
echo 'Bitte noch die Ports in der ipfw.rules anpassen'
echo 'Diese findest du unter "/usr/local/etc"'
echo '----------------------------------------------------'
echo
}
#----------
# Hier wird der aktuelle Kernel kopiert und anschließend die PF in den kopierten Kernel eingebaut. Anschließend kompilieren wir ihn.
#Die Firewall Rules werden vom Fetchserver geladen.
function_pf()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_pf()';
clear;
if [[ ! -e /usr/src/UPDATING ]]
then
clear
echo '----------------------------------------------------'
echo -e "\033[31mSource wurde noch nicht installiert\033[0m";
echo '----------------------------------------------------'
return;
fi
#--
echo "Die Firewall (PF) wird nun installiert."
cd /usr/src/sys/$ARCH/conf
cp $KERNEL PF$KERNEL
if [[ $KERNEL == "PAE" ]]
then
echo 'ident PFPAE' >> PF$KERNEL
elif [[ $KERNEL == "IPFWPAE" ]]; then
echo 'ident IPFWPFPAE' >> PF$KERNEL
else
echo 'ident PF' >> PF$KERNEL
fi
for i in $PFO
do
echo "options $i" >> PF$KERNEL
done
for i in $PFD
do
echo "device $i" >> PF$KERNEL
done
cd /usr/src
make buildkernel KERNCONF=PF$KERNEL && make installkernel KERNCONF=PF$KERNEL
echo 'pf_enable="YES"' >> /etc/rc.conf
echo 'pf_rules="/usr/local/etc/pf.conf"' >> /etc/rc.conf
cd /usr/local/etc
fetch $MAINPAGE/pf.conf
clear
echo
echo '----------------------------------------------------'
echo 'Die FW wurde in den $KERNEL KERNEL eingebaut'
echo 'Diese findest du unter "/usr/local/etc"'
echo '----------------------------------------------------'
echo
}
#----------
# SSHGuard bietet einen Schutz gegen Bruteforce oder andere Attacken. (Muss gescreend werden).
function_sshguard()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_sshguard()';
clear;
if [[ -e "$SSH" ]]
then
clear
echo '----------------------------------------------------'
echo -e "\033[31m Shguard ist bereits installiert.\033[0m";
echo '----------------------------------------------------'
return;
fi
#---
echo "SSHGuard wird nun installiert."
cd /usr/ports/security/sshguard/
make install clean
clear
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
echo ' - Bitte einmal "rehash" eingeben - '
echo
}
#----------
# Hier wird der Apache22 Webserver installiert.
function_apache2()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_apache2()';
clear;
if [[ -e "$APACHE" ]]
then
clear
echo '----------------------------------------------------'
echo -e "\033[31m Apache ist bereits installiert.\033[0m";
echo '----------------------------------------------------'
else
#---
echo "Apache2 wird nun installiert."
cd /usr/ports/www/apache22
make install
echo 'apache22_enable="YES"' >> /etc/rc.conf
echo 'accf_http_load="YES"' >> /boot/loader.conf
clear
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
fi
}
#----------
# Installiert PHP 5 und die dazugehörigen Pakete wie: PHP5-Mysql, PHP5-Session, PHP5-GD(Library) und fügt die Module automatisch in die Apache2 Config ein.
function_php5()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_php5()';
clear;
if [[ -e "$PHP" ]]
then
clear
echo '----------------------------------------------------'
echo -e "\033[31m PHP ist bereits installiert.\033[0m";
echo '----------------------------------------------------'
else
#---
cd /usr/ports/lang/php5
make config
make install
cd /usr/ports/databases/php5-mysql
make install
cd /usr/ports/www/php5-session
make install
cd /usr/ports/graphics/php5-gd
make install
echo '#LoadModule php5_module libexec/apache22/libphp5.so
<IfModule mod_dir.c>
<IfModule mod_php3.c>
<IfModule mod_php5.c>
DirectoryIndex index.php index.php3 index.html
</IfModule>
<IfModule !mod_php4.c>
DirectoryIndex index.php3 index.html
</IfModule>
</IfModule>
<IfModule !mod_php3.c>
<IfModule mod_php5.c>
DirectoryIndex index.php index.html index.htm
</IfModule>
<IfModule !mod_php4.c>
DirectoryIndex index.html
</IfModule>
</IfModule>
</IfModule>' >> /usr/local/etc/apache22/httpd.conf
echo 'DirectoryIndex index.php index.html index.htm' >> /usr/local/etc/apache22/httpd.conf
echo 'AddType application/x-httpd-php .php' >> /usr/local/etc/apache22/httpd.conf
echo 'AddType application/x-httpd-php-source .phps' >> /usr/local/etc/apache22/httpd.conf
fi
}
#----------
# PHP 5 Extensions werden für gewisse Zwecke benötigt.
function_php5extensions()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_php5extensions()';
clear;
echo "PHP5 Extensions werden nun installiert."
cd /usr/ports/lang/php5-extensions
make config
make install
RESULT=$?
if [ $RESULT -ne 0 ] ; then
echo
echo '----------------------------------------------------'
echo -e "\033[31mERROR '$RESULT'\033[0m";
echo '----------------------------------------------------'
echo
else
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
fi
}
#----------
# Virtueller Festplattenspeicher. Sollte der Arbeitsspeicher voll ausgenutzt sein, springt der Swap ein. Dieser ist allerdings etwas langsamer.
function_swap()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_swap()';
clear;
dialog --clear --inputbox "Wie viel MB Swap möchtest du hinzufügen?" 10 60 2> swap.tmp
SWAPCOUNT=$( cat swap.tmp )
dd if=/dev/zero of=/usr/swap2 bs=1024k count=$SWAPCOUNT
chmod 0600 /usr/swap2
mdconfig -a -t vnode -f /usr/swap2 -u 0 && swapon /dev/md0
RESULT=$?
if [ $RESULT -ne 0 ] ; then
echo
echo '----------------------------------------------------'
echo -e "\033[31mERROR '$RESULT'\033[0m";
echo '----------------------------------------------------'
echo
else
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
fi
}
#----------
# Diese Funktion bietet das Updaten oder Upgraden auf eine neuere Version an. Updates sollten alle 48 Stunden durchgeführt werden (Sicherheit).
function_system()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_system()';
clear;
#---
echo " 1) System Update";
echo " 2) System Upgrade + Update";
echo " Q/q) Abbrechen";
echo;
read -p "Was möchtest du tun? " SELECT
if [[ "$SELECT" == 1 ]]
then
freebsd-update fetch
freebsd-update install
elif [[ "$SELECT" == 2 ]]
then
read -p "Auf welche Version möchtest du upgraden?
Bitte nur die Versionsnummer angeben, z.B 8.2" REL
freebsd-update upgrade -r $REL-RELEASE -y
freebsd-update install -y
echo "Bitte rebooten und danach den Befehl:
'freebsd-update install eingeben'"
elif [[ "$SELECT" == [Qq] ]]
then
echo "Abbrechen"; echo;echo;
else
clear;
return;
fi
}
#----------
# Mit Hilfe dieser Funktion kann das aktuelle Passwort eines Benutzers geändert werden.
function_updaterootpassword()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_updaterootpassword()';
clear;
read -p "Für welchen Benutzer soll das Password geändert werden? :" USER
echo
echo "Wie soll dein neues Password lauten? :"
echo;
passwd $USER
clear
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
}
#----------
# Erstellt einen beliebigen MySQL Benutzer.
function_addmysqluser()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_addmysqluser()';
clear;
TMPFILES="newmysqluser.tmp newmysqlhost.tmp newmysqlpass.tmp actmysqlpass.tmp"
dialog --clear --inputbox "Wie soll der neue Benutzer heißen?" 10 60 2> newmysqluser.tmp
USER=$( cat newmysqluser.tmp )
echo
dialog --clear --inputbox "Welcher Host? (IP oder Hostnamen angeben) - '%' für jeden Host." 10 60 2> newmysqlhost.tmp
HOST=$( cat newmysqlhost.tmp )
echo
dialog --clear --inputbox "Wie soll das Password für den neuen Benutzer '$( cat newmysqluser.tmp )' lauten?" 10 60 2> newmysqlpass.tmp
NEWPASS=$( cat newmysqlpass.tmp )
echo
dialog --clear --inputbox "Bitte das aktuelle Passwort vom Benutzer 'root' eingeben." 10 60 2> actmysqlpass.tmp
PASS=$( cat actmysqlpass.tmp )
mysql -u root -p$PASS -e "GRANT ALL PRIVILEGES ON *.* TO '$USER'@'$HOST' IDENTIFIED BY '$NEWPASS' WITH GRANT OPTION;"
RESULT=$?
for i in $TMPFILES
do
chmod 600 $i
done
if [ $RESULT -ne 0 ]
then
echo
echo '----------------------------------------------------'
echo -e "\033[31mERROR '$RESULT'\033[0m";
echo '----------------------------------------------------'
echo
else
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
fi
}
#----------
# Diese Funktion setzt das MySQL Password. Sofern MySQL installiert wurde, bitte das System neustarten und diese Funktion umgehend ausführen.
function_setmysqlpassword()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_setmysqlpassword()';
clear;
dialog --clear --inputbox "Von welchem Benutzer soll das Passwort geändert werden?" 10 60 2> setmysqlpass.tmp
SETMYSQLPASS=$( cat setmysqlpass.tmp )
/usr/local/bin/mysqladmin -u root password $SETMYSQLPASS
clear
chmod 600 setmysqlpass.tmp
RESULT=$?
if [ $RESULT -ne 0 ]
then
echo
echo '----------------------------------------------------'
echo -e "\033[31mERROR '$RESULT'\033[0m";
echo '----------------------------------------------------'
echo
else
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
fi
}
#----------
# Diese Funktion kann dabei helfen, das aktuelle Passwort eines MySQL Benutzers zu ändern.
function_changemysqlpassword()
{
RUN_TIME_STAMP=$(date);
LAST_RUN='function_changemysqlpassword()';
clear;
TMPFILES="mysqluser.tmp mysqlpass.tmp mysqlnewpass.tmp"
dialog --clear --inputbox "Von welchem Benutzer soll das Passwort geändert werden?" 10 60 2> mysqluser.tmp
USER=$( cat mysqluser.tmp )
dialog --clear --inputbox "Wie lautet das aktuelle Passwort?" 10 60 2> mysqlpass.tmp
PASS=$( cat mysqlpass.tmp )
dialog --clear --inputbox "Wie soll das nee Passwort lauten?" 10 60 2> mysqlnewpass.tmp
NEWPASS=$( cat mysqlnewpass.tmp )
for i in $TMPFILES
do
chmod 600 $i
done
mysql -u $USER -p$PASS -e "UPDATE mysql.user SET password=PASSWORD('$NEWPASS') WHERE user='$USER';"
mysql -u $USER -p$PASS -e "flush privileges;"
if [ $RESULT -ne 0 ]
then
echo
echo '----------------------------------------------------'
echo -e "\033[31mERROR '$RESULT'\033[0m";
echo '----------------------------------------------------'
echo
else
echo
echo '----------------------------------------------------'
echo -e "\033[31mDONE\033[0m";
echo '----------------------------------------------------'
echo
fi
}
# --------------------- #
# Ende der Funktionen.
# --------------------- #
clear
# Hier wird der aktuelle Benutzer überprüft. Nur der Benutzer "root" kann diese Shell ausführen.
if [[ "$(id -u)" -ne 0 ]]
then
echo '----------------------------------------------------'
echo -e "\033[31mAchtung: Die Shell kann nicht ausgeführt werden.\033[0m"
echo '----------------------------------------------------'
echo
echo "Nur der 'root' Benutzer kann die Shell ausführen."
echo "Da du nicht mit dem Benutzer 'root' eingeloggt bist, "
echo "kann die Installaton nicht ausgeführt werden."
echo
echo "Deine aktuellen Login Informationen lauten: "
echo "$(id)"
echo
exit
fi
#----------
continue=yes
while [ "$continue" = yes ]
do
echo;
echo "System @: $REL";
echo "--------------------------------"
if [[ -n $RUN_TIME_STAMP ]]
then
echo "Zuletzt ausgeführt: $RUN_TIME_STAMP";
echo "Letzte ausgeführte Option: $LAST_RUN";
echo;
fi
#--
echo -e "\033[31m# Funktionen \033[0m";
echo " --";
echo " 1) Portsnap (fetch/update)";
echo " 2) Pwgen";
echo " 3) Screen";
echo " 4) Python";
echo " 5) Wget";
echo " 6) Libs";
echo " 7) MySQL";
echo " 8) PAE Kernel";
echo " 9) IPFW (Firewall) + Kernel komplimierung";
echo " 10) PF (Packet Filter) + Kernel komplimierung";
echo " 11) SSH Guard";
echo " 12) Apache2";
echo " 13) PHP 5";
echo " 14) PHP 5 Extensions";
echo " 15) Swap";
echo " 16) Systemupdate & Upgrade";
echo " --";
echo -e "\033[31m# Allgemeine Einstellungen\033[0m";
echo " --";
echo " 17) System Passwort ändern";
echo " 18) MySQL Passwort setzen";
echo " 19) MySQL Benutzer erstellen"
echo " 20) MySQL Passwort ändern";
echo " --";
echo " Q) Verlassen / Quit";
echo "--------------------------------"
read -p "Option auswählen [1-20,Q]:" SELECT
if [[ "$SELECT" == 1 ]]
then
function_portsnap;
continue=yes;
elif [[ "$SELECT" == 2 ]]
then
function_pwgen;
continue=yes;
elif [[ "$SELECT" == 3 ]]
then
function_screen;
continue=yes;
elif [[ "$SELECT" == 4 ]]
then
function_python;
continue=yes;
elif [[ "$SELECT" == 5 ]]
then
function_wget;
continue=yes;
elif [[ "$SELECT" == 6 ]]
then
function_python;
continue=yes;
elif [[ "$SELECT" == 7 ]]
then
function_mysql;
continue=yes;
elif [[ "$SELECT" == 8 ]]
then
function_paekernel;
continue=yes;
elif [[ "$SELECT" == 9 ]]
then
function_firewall;
continue=yes
elif [[ "$SELECT" == 10 ]]
then
function_pf;
continue=yes;
elif [[ "$SELECT" == 11 ]]
then
function_sshguard;
continue=yes;
elif [[ "$SELECT" == 12 ]]
then
function_apache2;
continue=yes;
elif [[ "$SELECT" == 13 ]]
then
function_php5;
continue=yes;
elif [[ "$SELECT" == 14 ]]
then
function_php5extensions;
continue=yes;
elif [[ "$SELECT" == 15 ]]
then
function_swap;
continue=yes;
elif [[ "$SELECT" == 16 ]]
then
function_system;
continue=yes;
elif [[ "$SELECT" == 17 ]]
then
function_updaterootpassword;
continue=yes;
elif [[ "$SELECT" == 18 ]]
then
function_setmysqlpassword;
continue=yes;
elif [[ "$SELECT" == 19 ]]
then
function_addmysqluser;
continue=yes;
elif [[ "$SELECT" == 20 ]]
then
function_changemysqlpassword;
continue=yes;
elif [[ "$SELECT" == [Qq] ]]
then
echo "Abbrechen"; echo;echo;
continue=no;
else
clear;
continue=yes;
fi
done

Best regards,
dynki






