Project

General

Profile

Download (3.51 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-2024 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
# Parse command line parameters
33
while [ $# -gt 0 ]; do
34
	case $1 in
35
		-c)
36
			shift
37
			/bin/sh -c "$@"
38
			exit
39
			;;
40
		*) : ;;
41
	esac
42
	shift
43
done
44

    
45
# endless loop
46
while : ; do
47

    
48
if [ -f /tmp/ttybug ]; then
49
	/bin/rm /tmp/ttybug
50
	exit && exit && logout
51
fi
52

    
53
/etc/rc.banner
54

    
55
# Read product_name from $g, defaults to pfSense
56
if [ -f /etc/product_name ]; then
57
	product_name=$(/bin/cat /etc/product_name)
58
else
59
	product_name=$(/usr/local/sbin/read_global_var product_name pfSense)
60
fi
61

    
62
# Read product_label from $g, defaults to pfSense
63
if [ -f /etc/product_label ]; then
64
	product_label=$(/bin/cat /etc/product_label)
65
else
66
	product_label=$(/usr/local/sbin/read_global_var product_label pfSense)
67
fi
68

    
69
# Check to see if SSH is running.
70
if /bin/pgrep -qaF /var/run/sshd.pid sshd 2>/dev/null; then
71
	sshd_option='Disable'
72
else
73
	sshd_option='Enable'
74
fi
75

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

    
88
echo
89
read -p "Enter an option: " opmode
90
echo
91

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

    
166
done
(39-39/85)