home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- ende() {
- IP=`cat /tmp/ip`
-
- if [ -r /tmp/fail ]
- then
- dialog --clear --title "Installationsende" --msgbox \
- "\nHerzlichen Glⁿckwunsch,\n
- Sie haben Server-on-CD wahrscheinlich erfolgreich installiert. Bei der
- automatischen Netzprⁿfung konnte allerdings keine Workstation mit
- passender IP-Nummer gefunden werden. Bitte ⁿberprⁿfen Sie die
- Netzverkabelung und die Netzwerkeinstellungen an den Workstations
- (Start -> Einstellungen -> Systemsteuerung -> Netzwerk). Weitere
- Informationen finden Sie in den Hilfedateien auf der CD, die Sie mit
- einem Webbrowser anschauen k÷nnen." 15 74
- else
- dialog --clear --title "Installationsende" --msgbox \
- "\nHerzlichen Glⁿckwunsch,\n
- Sie haben Server-on-CD erfolgreich installiert. Die weiteren
- erforderlichen Konfigurationen nehmen Sie ⁿber eine angeschlossene
- Workstation vor. Geben Sie dazu in der Adresszeile des Web-Browsers
- dieser Workstation die folgende IP-Nummer ein:
- http://$IP:150 " 15 72
- fi
-
- rm /tmp/{setup.*,ip,ipnr,pass,fail} 2>&1 1>&/dev/null
-
- startdienste
-
- setterm -default
- setterm -blank 15
- }
-
-
- dhcp()
- {
- dialog --clear --title "DHCP IP-Nummern" --inputbox \
- "\nGeben Sie bitte die IP-Nummer fⁿr Ihren DHCP-Server ein oder
- drⁿcken Sie <ENTER> fⁿr die IP-Nummer 192.168.0.1. Die dritte
- Zahlengruppe (default=0) bestimmt den Netzwerkrahmen fⁿr den
- DHCP-Server, die vierte Zahlengruppe (default=1) die Nummer des
- Servers. Die erste Zahlengruppe sollte auf \"192\", die zweite auf
- \"168\" lauten.\n\n" 20 72 "192.168.0.1" 2>/tmp/setup.$$
- antwort=$?
-
- if [ $antwort -eq 0 ]
- then
- if [ -z `cat /tmp/setup.$$` ]
- then
- /sbin/ifconfig eth0 192.168.0.1 2>&1 1>&/dev/null
- echo -n "192.168.0.1" >/etc/IPNR
- echo " 0" >>/etc/IPNR
- echo "ddns-update-style ad-hoc;" >/etc/dhcpd.conf
- echo "subnet $IPNR netmask 255.255.255.0 {" >>/etc/dhcpd.conf
- echo " range 192.168.0.2 192.168.0.254;">>/etc/dhcpd.conf
- echo "max-lease-time 2419200;">>/etc/dhcpd.conf
- echo "default-lease-time 2419200;">>/etc/dhcpd.conf
- echo "}">>/etc/dhcpd.conf
- echo "option netbios-node-type 1;">>/etc/dhcpd.conf
- echo "option routers 192.168.0.1;">>/etc/dhcpd.conf
- echo "option domain-name-servers 192.168.0.1;">>/etc/dhcpd.conf
-
- else
-
- /bin/testip -a `cat /tmp/setup.$$`
- if [ $? -ne 0 ]
- then
- fehlernetz
- return 1
- fi
-
- IP=`cat /tmp/setup.$$`
- echo $IP >/tmp/ip
- NET=`awk -F. '{print $1"."$2"."$3}' /tmp/setup.$$`
-
- /sbin/ifconfig eth0 $IP up 2>&1 1>&/dev/null
-
- IPNET=`awk -F. '{print $4+0}' /tmp/setup.$$`
-
- if [ $IPNET -lt 3 ]
- then
- IPMI=3
- IPMA=254
- elif [ $IPNET -gt 253 ]
- then
- IPMI=1
- IPMA=253
- else
- MAX2=`expr $IPNET - 1`
- MIN2=`expr $IPNET + 1`
- fi
-
- echo -n $IP >/etc/IPNR
- echo " 0" >>/etc/IPNR
-
- echo "ddns-update-style ad-hoc;" >/etc/dhcpd.conf
- echo "subnet $NET.0 netmask 255.255.255.0 {" >>/etc/dhcpd.conf
-
- if [ $MAX2 -lt $IPNET ]
- then
- echo " range $NET.1 $NET.$MAX2;" >> /etc/dhcpd.conf
- echo " range $NET.$MIN2 $NET.254;" >> /etc/dhcpd.conf
- else
- echo " range $NET.$IPMI $NET.$IPMA;">>/etc/dhcpd.conf
- fi
-
- echo "max-lease-time 2419200;">>/etc/dhcpd.conf
- echo "default-lease-time 2419200;">>/etc/dhcpd.conf
- echo "}">>/etc/dhcpd.conf
- echo "option netbios-node-type 1;">>/etc/dhcpd.conf
- echo "option routers $IP;">>/etc/dhcpd.conf
- echo "option domain-name-servers $IP;">>/etc/dhcpd.conf
- fi
- else
- /etc/rc.d/rc.install
- exit
- fi
-
- /usr/bin/dhcpd 2>&1 1>&/dev/null
- echo "1" >/etc/DHCP
- passwort
- testpass
- ende
- init 2
- exit
- }
-
- ethkonfig()
- {
- zahl=$1
- IPNR=$2
-
- /sbin/ifconfig eth$zahl $IPNR up 2>&1 1>&/dev/null
-
- if [ $? -ne 0 ]
- then
- return 0
- fi
-
- echo -n $IPNR >/etc/IPNR
-
- dialog --title "Teste Netzkonfiguration" --infobox "\n\n Bitte warten..." 8 72
-
- sleep 1
-
- /usr/bin/myping $IPNR
-
- if [ $? -ne 0 ]
- then
- /sbin/ifconfig eth$zahl 10.0.0.$(($zahl+1)) 2>&1 1>&/dev/null
- return 0
- else
- echo " $zahl" >>/etc/IPNR
- return 1
- fi
- }
-
- fehlerpass()
- {
- dialog --clear --title "Passwort" --inputbox \
- "\nDas von Ihnen angegebene Passwort ist zu kurz. Das Passwort
- mu▀ mindestens vier Zeichen enthalten!" 20 72 2>/tmp/setup.$$
- antwort=$?
- testpass
- }
-
- passwort()
- {
- dialog --clear --title "Passwort fⁿr Server-on-CD" --inputbox \
- "\nBitte geben Sie ein Passwort fⁿr den Administrator ein. Das
- Passwort wird ben÷tigt, um ─nderungen an den Systemeinstellungen
- vornehmen zu k÷nnen. Das Passwort mu▀ mindestens vier Zeichen
- lang sein und darf nur aus Zahlen und Buchstaben bestehen. Sie
- k÷nnen das Passwort spΣter ⁿber eine Workstation Σndern.
- \n" 20 72 2>/tmp/setup.$$
- antwort=$?
-
- if [ $antwort -eq 1 ]
- then
- until netz
- do foo
- done
- passwort
- testpass
- return
- fi
-
- }
-
- testpass()
- {
- COUNT=$(wc -c </tmp/setup.$$)
- if [ $COUNT -lt 4 ]
- then
- fehlerpass $IPNR 1
- unset COUNT
- return 1
- fi
- unset COUNT
- writepass
- }
-
- writepass()
- {
- echo -n "root:" > /tmp/pass
- cat /tmp/setup.$$ >> /tmp/pass
- echo -e "" >> /tmp/pass
- chpasswd </tmp/pass
- /usr/bin/htpasswd -bc /etc/apache/passwd supervisor `cat /tmp/setup.$$` 2>&1 1>&/dev/null
- rm /tmp/setup.$$
- rm /tmp/pass
- }
-
- fehlernetz()
- {
- dialog --clear --title "Falsche Eingabe" --msgbox \
- "\nDie von Ihnen angegebene IP-Nummer ist ungⁿltig. Beachten Sie
- bitte die Formatangaben." 10 72
- }
-
- testnetz()
- {
- if [ ! -r /tmp/setup.$$ ]
- then
- fehlernetz
- fi
- IPNR=`awk -F. '{print $1+0"."$2+0"."$3+0"."$4+0}' /tmp/setup.$$`
- echo $IPNR >/tmp/ipnr
-
- /bin/testip -a $IPNR
- if [ $? -ne 0 ]
- then
- fehlernetz
- return 1
- fi
-
- for i in 0 1 2 3
- do
- ethkonfig $i $IPNR
- rueck=$?
- if [ $rueck -eq 1 ]
- then
- break
- fi
- done
-
- if [ $rueck -eq 0 ]
- then
- dialog --title "Warnung" --menu "\n
- Das Netzwerk antwortet nicht. Das kann daran liegen, da▀
- keine anderen Rechner mit passenden IP-Nummern angeschlossen
- und eingeschaltet sind. Passende IP-Nummern stimmen in den
- ersten drei Zahlen ⁿberein.
- Bitte wΣhlen Sie:\n" 17 72 2 \
- "1" "Konfiguration fortfⁿhren" \
- "2" "Netzwerkkonfiguration erneut durchfⁿhren" 2>/tmp/setup.$$
- antwort=$?
-
- if [ $antwort = 0 ]
- then
- ANTWORT=`cat /tmp/setup.$$`
- case $ANTWORT in
- 2) netz
- return ;;
- 1) /sbin/ifconfig eth0 $IPNR
- echo -n $IPNR >/etc/IPNR
- echo -e "1" >/tmp/fail
- echo " 0" >>/etc/IPNR ;;
-
- esac
- else
- netz
- return
- fi
- fi
-
- return 0
- }
-
-
- netzwerk()
- {
- dialog --clear --title "IP-Nummer des Servers" --inputbox \
- "\nBitte geben Sie \"DHCP\" ein, wenn Server-on-CD die
- Installation automatisch vornehmen soll. Andernfalls tragen
- Sie bitte die IP-Nummer fⁿr diesen Rechner ein. Diese Nummer
- mu▀ im Format 192.168.x.y (x=0-255, y=1-254) angegeben werden.
- Der Wert fⁿr x mu▀ mit allen in diesem Netzwerk zusammengefa▀ten
- Rechnern gleich, der Wert fⁿr y mu▀ fⁿr jeden Rechner einmalig sein.
- Sofern Sie noch keine IP-Nummern im Netz vergeben haben, empfehlen
- wir fⁿr diesen Server die Nummer 192.168.0.1 (default),fⁿr die
- erste Workstation die Nummer 192.168.0.2 usw.\n\n" 20 72 "DHCP" \
- 2>/tmp/setup.$$
-
- antwort=$?
- if [ $antwort -eq 0 ]
- then
- cp /tmp/setup.$$ /tmp/ip
- else
- /etc/rc.d/rc.install
- exit
- fi
- }
-
- netz()
- {
- netzwerk
- if [ `grep -i -c "dhcp" /tmp/ip` -eq 1 ]
- then
- dhcp
- else
- testnetz
- if [ $? -ne 0 ]
- then
- return 1
- fi
- fi
- }
-
- foo()
- {
- return
- }
-
- startdienste()
- {
- /usr/sbin/apachectl start 2>&1 1>&/dev/null
- /usr/sbin/smbd -D -s /etc/samba/smb.conf 2>&1 1>&/dev/null
- /usr/sbin/nmbd -D -s /etc/samba/smb.conf 2>&1 1>&/dev/null
- }
-
- dialog --clear --title "Server-on-CD" --msgbox \
- "\nWillkommen auf Ihrem neuen Server-on-CD. Im Folgenden mⁿssen Sie
- noch einige Angaben fⁿr diesen Rechner machen. Nach erfolgreicher
- Installation k÷nnen Sie diesen Server von einer angeschlossenen
- Workstation aus verwalten. Diese Workstation ben÷tigt hierzu
- lediglich einen aktuellen Web-Browser mit aktivierter Java-Script-
- Unterstⁿtzung." 15 72
-
- # mount -t vfat /dev/hda1 /mnt
- cd /mnt/C 2>&1 1>&/dev/null
- if [ ! -d socd ]
- then
- mkdir socd 2>&1 1>&/dev/null
- fi
-
- until netz
- do
- foo
- done
-
- passwort
- testpass
- ende
-
- if [ -e /etc/DHCP ]
- then
- if [ `cat /etc/DHCP` -eq 1 ]
- then
- /usr/bin/dhcpd
- fi
- fi
- # /sbin/init 2
-
-
-
-
-
-
-