version 1.1, 2014/01/21 09:19:06
|
version 1.1.2.1, 2014/01/21 09:19:06
|
Line 0
|
Line 1
|
|
#!/bin/sh |
|
# |
|
# ELWIX Initial RC Menu script |
|
# |
|
# $Id$ |
|
# |
|
|
|
trap : 2 |
|
trap : 3 |
|
trap : 18 |
|
#exec </dev/console >/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" |
|
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 |
|
if [ -z "$iface" ]; then |
|
return 1 |
|
fi |
|
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" = X"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) |
|
echo |
|
read -p "New system webGUI password: " pass |
|
read -p "Confirm system webGUI password: " confirm |
|
if [ X"$pass" = X"$confirm" ]; then |
|
cfexec xmler -s /elwix/system/password /elwix/etc/config.xml \ |
|
$(md5 -qs "$pass") |
|
else |
|
echo "Error:: passwords are different ..." |
|
fi |
|
;; |
|
4) |
|
echo |
|
echo "Restore factory defaults ..." |
|
read -p " +Are you sure for restore and clear all changes? [no|yes]: " ans |
|
if [ X"$ans" = X"yes" -o X"$ans" = X"y" ]; then |
|
cfexec rm -rf /elwix/etc/rc.S /elwix/etc/rc.s /elwix/etc/rc.t |
|
cfexec tar -xzpf /elwix/altroot/backup/.var.tgz -C /elwix/altroot |
|
cfexec tar -xzpf /elwix/altroot/backup/.etc.tgz -C /elwix |
|
fi |
|
;; |
|
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) |
|
exec $SHELL |
|
;; |
|
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 |