Project

General

Profile

Download (3.68 KB) Statistics
| Branch: | Tag: | Revision:
1
#!/bin/sh
2
#
3
# rc.initial
4
#
5
# part of pfSense (https://www.pfsense.org)
6
# Copyright (c) 2004-2013 BSD Perimeter
7
# Copyright (c) 2013-2016 Electric Sheep Fencing
8
# Copyright (c) 2014-2022 Rubicon Communications, LLC (Netgate)
9
# All rights reserved.
10
#
11
# originally based on m0n0wall (http://neon1.net/m0n0wall)
12
# Copyright (c) 2003-2004 Manuel Kasper <mk@neon1.net>.
13
# All rights reserved.
14
#
15
# Licensed under the Apache License, Version 2.0 (the "License");
16
# you may not use this file except in compliance with the License.
17
# You may obtain a copy of the License at
18
#
19
# http://www.apache.org/licenses/LICENSE-2.0
20
#
21
# Unless required by applicable law or agreed to in writing, software
22
# distributed under the License is distributed on an "AS IS" BASIS,
23
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
# See the License for the specific language governing permissions and
25
# limitations under the License.
26

    
27
# make sure the user can't kill us by pressing Ctrl-C, ctrl-z, etc.
28
trap : INT
29
trap : QUIT
30
trap : ILL
31

    
32
unset do_sleep
33
if [ -f /etc/rc.local ]; then
34
	if ! /bin/pgrep -qf 'rc.local$'; then
35
		echo ">>> Launching rc.local in background..."
36
		/bin/sh /etc/rc.local &
37
		do_sleep=1
38
	fi
39
	if [ -f /etc/rc.local.running ] &&
40
	! /bin/pgrep -qf 'rc.local.running$'; then
41
		[ -n "${do_sleep}" ] && sleep 1
42
		echo ">>> Launching rc.local.running in background..."
43
		/bin/sh /etc/rc.local.running &
44
	fi
45
fi
46

    
47
# Parse command line parameters
48
while [ $# -gt 0 ]; do
49
	case $1 in
50
		-c)
51
			shift
52
			/bin/sh -c "$@"
53
			exit
54
			;;
55
		*) : ;;
56
	esac
57
	shift
58
done
59

    
60
# endless loop
61
while : ; do
62

    
63
if [ -f /tmp/ttybug ]; then
64
	/bin/rm /tmp/ttybug
65
	exit && exit && logout
66
fi
67

    
68
/etc/rc.banner
69

    
70
# Read product_name from $g, defaults to pfSense
71
product_name=$(/usr/local/sbin/read_global_var product_name pfSense)
72
product_label=$(/usr/local/sbin/read_global_var product_label pfSense)
73

    
74
# Check to see if SSH is running.
75
if /bin/pgrep -qaF /var/run/sshd.pid sshd 2>/dev/null; then
76
	sshd_option='Disable'
77
else
78
	sshd_option='Enable'
79
fi
80

    
81
# display console menu
82
echo ""
83
echo " 0) Logout (SSH only)                  9) pfTop"
84
echo " 1) Assign Interfaces                 10) Filter Logs"
85
echo " 2) Set interface(s) IP address       11) Restart webConfigurator"
86
echo " 3) Reset webConfigurator password    12) PHP shell + ${product_label} tools"
87
echo " 4) Reset to factory defaults         13) Update from console"
88
echo " 5) Reboot system                     14) ${sshd_option} Secure Shell (sshd)"
89
echo " 6) Halt system                       15) Restore recent configuration"
90
echo " 7) Ping host                         16) Restart PHP-FPM"
91
echo " 8) Shell"
92

    
93
echo
94
read -p "Enter an option: " opmode
95
echo
96

    
97
# see what the user has chosen
98
case ${opmode} in
99
0)
100
	exit && exit && logout
101
	;;
102
1)
103
	/etc/rc.initial.setports
104
	;;
105
2)
106
	/etc/rc.initial.setlanip
107
	;;
108
3)
109
	/etc/rc.initial.password
110
	;;
111
4)
112
	/etc/rc.initial.defaults
113
	;;
114
5)
115
	/etc/rc.initial.reboot
116
	;;
117
6)
118
	/etc/rc.initial.halt
119
	;;
120
7)
121
	/etc/rc.initial.ping
122
	;;
123
8)
124
	/bin/tcsh
125
	;;
126
9)
127
	/usr/local/sbin/pftop
128
	;;
129
10)
130
	/usr/bin/tail -F /var/log/filter.log
131
	;;
132
11)
133
	/etc/rc.restart_webgui
134
	;;
135
12)
136
	/usr/local/sbin/pfSsh.php
137
	;;
138
13)
139
	/bin/sh /usr/local/sbin/${product_name}-upgrade
140
	;;
141
14)
142
	/usr/local/bin/php -f /etc/rc.initial.toggle_sshd
143
	;;
144
15)
145
	/etc/rc.restore_config_backup
146
	;;
147
16)
148
	/etc/rc.php-fpm_restart
149
	;;
150
100)
151
	protocol=$(/usr/local/sbin/read_xml_tag.sh string system/webgui/protocol)
152
	port=$(/usr/local/sbin/read_xml_tag.sh string system/webgui/port)
153
	[ -z "$protocol" ] && protocol='http'
154
	if [ -z "$port" ]; then
155
		case $protocol in
156
			https) port=443;;
157
			*)     port=80;;
158
		esac
159
	fi
160
	links "${protocol}://localhost:${port}"
161
	;;
162
'')
163
	if [ -n "$SSH_CONNECTION" ]; then
164
		exit
165
	else
166
		/bin/kill $PPID ; exit
167
	fi
168
	;;
169
esac
170

    
171
done
(39-39/85)