home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- ende() {
- IP=`cat /tmp/ip`
-
- if [ -r /tmp/fail ]
- then
- dialog --clear --title "Finalizaci≤n de la instalaci≤n" --msgbox \
- "\níEnhorabuena!\n
- La instalaci≤n de Server-on-CD parece satisfactoria. Sin embargo,
- la verificaci≤n de red automßtica no ha encontrado ninguna
- estaci≤n de trabajo con el n·mero IP apropiado Compruebe el cable
- de conexi≤n a la red y la configuraci≤n de la red en las estaciones
- de trabajo (Inicio -> Configuraci≤n -> Panel de control -> Red). Si
- desea mßs informaci≤n, consulte los archivos de ayuda relativos al
- CD, que puede encontrar mediante su explorador Web." 15 74
- else
- dialog --clear --title "Finalizaci≤n de la instalaci≤n" --msgbox \
- "\níEnhorabuena!\n
- Ha instalado Server-on-CD correctamente. El resto de las
- configuraciones necesarias deben llevarse a cabo en una de las
- estaciones de trabajo conectadas. Introduzca en la lφnea de
- direcci≤n del explorador Web de la estaci≤n de trabajo, el
- siguiente n·mero IP:
- 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 "N·meros IP de DHCP" --inputbox \
- "\nIntroduzca el n·mero IP de su servidor DHCP o pulse <INTRO>
- para confirmar el n·mero IP 192.168.0.1. El tercer grupo de cifras
- (valor predeterminado=0) determina el ßmbito de red para el
- servidor DHCP; el cuarto grupo de cifras (valor predeterminado=1)
- determina el n·mero del servidor. El primer grupo de cifras debe
- definirse como \"192\", el segundo como \"168\".\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 "omprobaci≤n de la configuraci≤n de la red" --infobox \
- "\n\n Espere..." 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 "Contrase±a" --inputbox \
- "\nLa contrase±a elegida es demasiado corta. Debe contener
- como mφnimo cuatro sφmbolos". 20 72 2>/tmp/setup.$$
- antwort=$?
- testpass
- }
-
- passwort()
- {
- dialog --clear --title "Contrase±a para Server-on-CD" --inputbox \
- "\nIntroduzca una contrase±a para el administrador. La contrase±a
- es necesaria para modificar la configuraci≤n del sistema. Debe
- contener como mφnimo cuatro sφmbolos. Puede contener ·nicamente
- cifras y letras. Podrß modificar la contrase±a posteriormente en
- la estaci≤n de trabajo.\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 "Entrada incorrecta" --msgbox \
- "\nEl n·mero IP seleccionado no es vßlido. Consulte la
- informaci≤n relativa al formato.\n" 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 "Advertencia" --menu "\n
- La red no responde. Puede que no haya otros equipos con los n·meros
- IP apropiados conectados o en funcionamiento. Los n·meros IP
- adecuados coinciden con las tres primeras cifras.
- \nSeleccione:\n" 17 72 2 \
- "1" "Continuar con la configuraci≤n" \
- "2" "Volver a ejecutar la configuraci≤n de red" 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 "N·mero IP de los servidores" --inputbox \
- "\nIntroduzca \"DHCP\" para la instalaci≤n automßtica de
- Server-on-CD. De forma alternativa, introduzca el n·mero IP
- correspondiente a este equipo. El formato debe ser: 192.168.x.y
- (x=0-255, y=1-254). El valor de x debe ser el mismo para todos los
- equipos conectados a la red; el valor de y debe ser unφvoco. Si no
- ha introducido ning·n n·mero IP en la red, aparecerß la propuesta
- 192.168.0.1 (valor predeterminado) para la primera estaci≤n de
- trabajo; para la segunda 192.168.0.2, y asφ sucesivamente.\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 \
- "\nBienvenido a su nuevo Server-on-CD.\n
- A continuaci≤n deberß introducir ciertas especificaciones. Una vez
- finalizada correctamente la instalaci≤n podrß administrar el
- servidor desde cualquier estaci≤n de trabajo conectada a la red.
- La estaci≤n de trabajo deberß contar ·nicamente con un explorador
- Web actual con el lenguaje Java-Script activado." 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
-