um ein login/password für den webserver zu erstellen macht ihr das:
zunächst in das verzeichnis des webservers wechseln:
cd /var/www
dann das verzeichnis anlegen in dem ihr die dateien ablegen und schützen wollt:
mkdir ORDNER
dann in dieses verzeichnis wechseln:
cd ORDNER
webserver-verzeichnis-schutz, durch anlegen der apache2 gültigen datei, aktivieren:
nano .htaccess
mit folgendem inhalt:
Code:
AuthName "Authorization required"
AuthType Basic
AuthUserFile /var/htpasswd
AuthGroupFile /dev/null
require valid-user
datei rechte anpassen:
chmod 640 /var/www/ORDNER/.htaccess
dann über den befehl htpasswd die
AuthUserFile datei erzeugen:
htpasswd -c /var/htpasswd USERNAME
USERNAME ersetzt ihr mit irgendwas eurer wahl wie zum beispiel: hans
wichtig ist auch das
AuthUserFile nicht in einem über den webserver zugänglichen bereich liegt, wenn das doch der fall sein sollte müssen die datei rechte wie oben beschrieben bei der .htaccess angepasst werden!
Code:
#!/bin/sh
#
# Downloads, Installs & Reloads the latest Enigma2 Bouquets. version: 0.6
#
#
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="http://192.168.0.10"
# Der Port eures Webservers (standard: 80)
SERVERport="8080"
# Das Verzeichnis in dem die Bouquets Datei auf dem Webserver liegt
SERVERdir="ORDNER"
# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME=""
# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD=""
# Name der gepackten Bouquets Datei
BQ="enigma2.tar.gz"
# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time.txt"
#
## Ende der Konfiguration
#
#error handling - function
_error () {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
echo -e "\033[1;31;40m $message \033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
exit 1
fi
}
TEMPdir=/tmp
URL="$SERVERurl:$SERVERport"
WGETsettings="-q -P$TEMPdir --timeout=15 --wait=5 --tries=3"
if [ ! -z "$USERNAME" ]; then
if [ -z "$PASSWORD" ]; then
_error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
fi
WGETsettings="$WGETsettings --user=$USERNAME --password=\"$PASSWORD\""
fi
#downloaden von time.txt - function
downtimetxt () {
#Downloaden von time.txt vom Server
wget $WGETsettings $URL/$SERVERdir/$ST
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehler aufgetreten (download $ST)"
fi
#Speichern des Inhalts von time.txt in einer Variablen
timen=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"
}
#download and install Bouquets - function
downinstBQ () {
TYPE=$1
#Download der Senderliste vom Server
wget $WGETsettings $URL/$SERVERdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (download $BQ)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$BQ" ]; then
_error 1 "Es ist ein Fehler aufgetreten ($BQ wurde nicht heruntergeladen)"
fi
#datum des bouquets archives
echo "Bouquets Archive wurde erstellt am $(date +"%d.%m.%Y um %H:%m:%S" -r $TEMPdir/$BQ)"
#Entpacken
tar -zxf $BQ
_error $? "Es ist ein Fehler aufgetreten (entpacken $BQ)"
#prüfen ob der inhalt des archives korrekt ist
if [ ! -f "$TEMPdir/enigma2/satellites.xml" ]; then
_error 1 "Das Archive $BQ entspricht nicht den Anforderungen! (enigma2/satellites.xml nicht vorhanden)"
fi
#Speichern der time.txt in timelu.txt
echo "$timen" > /etc/timelu.txt
mv $TEMPdir/enigma2/satellites.xml /etc/tuxbox/
_error $? "Es ist ein Fehler aufgetreten (verschieben $TEMPdir/enigma2/satellites.xml)"
cd /etc/enigma2
rm -f *.tv
rm -f *.radio
rm -rf blacklist
rm -rf lamedb
mv $TEMPdir/enigma2/* /etc/enigma2
rm -rf $TEMPdir/enigma2
rm -f $TEMPdir/$BQ
echo "Lade Senderliste neu"
RELOAD1=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=1)
RELOAD2=$(wget -qO - http://127.0.0.1/web/servicelistreload?mode=2)
echo $RELOAD1 | grep reloaded | cut -d ">" -f 2 | cut -d "<" -f 1
echo $RELOAD2 | grep reloaded | cut -d ">" -f 2 | cut -d "<" -f 1
echo " "
echo -e "\033[1;32;40m Bouquets $TYPE erfolgreich abgeschlossen \033[0m"
}
echo "Pruefe ob ein Update der Bouquets noetig ist.."
cd $TEMPdir
#prüfen ob das script schon mal genutzt wurde und /etc/timelu.txt überhaupt vorhanden ist
if [ -f "/etc/timelu.txt" ]; then
#Speichern des Inhalts von timelu.txt in einer Variablen
timelu=$(cat /etc/timelu.txt | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von /etc/timelu.txt)"
#Downloaden von time.txt vom Server
downtimetxt
#Vergleich: Ist timelu kleiner als timen?
if [ $timelu -lt $timen ]; then
echo "Update vorhanden - Starte Update"
echo " "
#download and update bouquets
downinstBQ Update
else
#Timen ist kleiner oder gleich groß wie timelu
echo -n "Senderliste aktuell."
echo -e "\033[1;32;40m Kein Update noetig \033[0m"
fi
else
#Downloaden von time.txt vom Server
downtimetxt
#download and install bouquets
echo "Starte Bouquets Install"
echo " "
downinstBQ Install
fi
rm -f $TEMPdir/$ST
exit 0