#!/bin/sh # # ELWIX Initial RC Menu script # # $Id: rc.initial,v 1.2.2.3 2013/01/23 15:00:39 misho Exp $ # trap : 2 trap : 3 trap : 18 #exec /dev/console 2>/dev/console MAGIC_MENU="menu" menu() { echo echo echo "ELWIX - console setup" echo "*********************" echo "0) Logout" echo "1) Interfaces: assign network ports" echo "2) Reset root password" echo "3) Reset webGUI password" echo "4) Reset to factory defaults" echo "5) Reboot system" echo "6) Ping host" echo "7) SSH to host" echo "8) Go to shell" [ -r /etc/platform ] && PLATFORM=$(cat /etc/platform) if [ "${PLATFORM}" != "embedded" ]; then echo "9) Clone system on other drive"; fi echo read -p "Enter number: " opcode case ${opcode} in 0) exit ;; 1) IFACES=$(ifconfig -l) echo echo "Available interfaces: $IFACES" read -p " +Which from them: " iface read -p " +Name of interface $iface []: " name read -p " +Setup management vlan 4093 on $iface? [no|yes]: " mgmt read -p " +IPv4 address/mask of interface $iface [dhcp|x.x.x.x/x]: " ip4 read -p " +IPv6 address/mask of interface $iface [auto|x:x:x::x/x]: " ip6 if [ X"$mgmt" = X"yes" -o X"$mgmt" = "y" ]; then cfexec sh -c "echo $iface >/etc/mylan" fi ifconfig $iface description "$name" up if [ -n "$ip4" ]; then if [ X"$ip4" != X"dhcp" ]; then ifconfig $iface inet alias $ip4 else dhclient $iface fi fi if [ -n "$ip6" ]; then ifconfig $iface inet6 auto_linklocal -ifdisabled if [ X"$ip6" != X"auto" ]; then ifconfig $iface inet6 -accept_rtadv ifconfig $iface inet6 alias $ip6 else ifconfig $iface inet6 accept_rtadv fi fi ;; 2) passwd root ;; 3) ;; 4) echo echo "Restore factory defaults ..." cfexec rm -rf /elwix/etc/rc.S /elwix/etc/rc.s /elwix/etc/rc.t cfexec tar -xzpf /elwix/backup/.var.tgz -C /elwix/altroot cfexec tar -xzpf /elwix/altroot/backup/.etc.tgz -C /elwix ;; 5) reboot ;; 6) read -p " +Address: " host read -p " +Number packets [4]: " cx ping -n -c ${cx:-4} ${host:-localhost} ;; 7) read -p " +Address: " host read -p " +Port [22]: " port read -p " +User [$USER]: " user ssh -p ${port:-22} -l ${user:-$USER} ${host:-localhost} ;; 8) $SHELL ;; 9) echo camcontrol devlist echo read -p " +Select drive [like: ada1]: " dev if [ -n "$dev" ]; then if `disklabel $dev`; then read -p " +This is right choice? [no|yes]: " ask if [ X"$ask" = X"yes" -o X"$ask" = X"y" ]; then echo work ..... fi fi fi ;; esac } ### main() while : ; do if [ -r /etc/disablemenu ]; then echo echo echo "*** Console menu disabled. ***" echo stty -echo read tmp stty echo if [ X"${tmp}" = X"${MAGIC_MENU}" ]; then echo echo "> OK, temporary unhide menu ..." echo menu fi else menu fi done