mirror of
https://github.com/pi-hole/pi-hole
synced 2024-12-22 23:08:07 +00:00
Don't source the install script in webpage.sh (#5270)
This commit is contained in:
commit
19d50b9669
@ -22,12 +22,14 @@ readonly dnscustomcnamefile="/etc/dnsmasq.d/05-pihole-custom-cname.conf"
|
|||||||
|
|
||||||
readonly gravityDBfile="/etc/pihole/gravity.db"
|
readonly gravityDBfile="/etc/pihole/gravity.db"
|
||||||
|
|
||||||
# Source install script for ${setupVars}, ${PI_HOLE_BIN_DIR} and valid_ip()
|
|
||||||
readonly PI_HOLE_FILES_DIR="/etc/.pihole"
|
|
||||||
# shellcheck disable=SC2034 # used in basic-install to source the script without running it
|
|
||||||
SKIP_INSTALL="true"
|
|
||||||
source "${PI_HOLE_FILES_DIR}/automated install/basic-install.sh"
|
|
||||||
|
|
||||||
|
readonly setupVars="/etc/pihole/setupVars.conf"
|
||||||
|
readonly PI_HOLE_BIN_DIR="/usr/local/bin"
|
||||||
|
|
||||||
|
# Root of the web server
|
||||||
|
readonly webroot="/var/www/html"
|
||||||
|
|
||||||
|
# Source utils script
|
||||||
utilsfile="/opt/pihole/utils.sh"
|
utilsfile="/opt/pihole/utils.sh"
|
||||||
source "${utilsfile}"
|
source "${utilsfile}"
|
||||||
|
|
||||||
@ -98,6 +100,47 @@ HashPassword() {
|
|||||||
echo "${return}"
|
echo "${return}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Check an IP address to see if it is a valid one
|
||||||
|
valid_ip() {
|
||||||
|
# Local, named variables
|
||||||
|
local ip=${1}
|
||||||
|
local stat=1
|
||||||
|
|
||||||
|
# Regex matching one IPv4 component, i.e. an integer from 0 to 255.
|
||||||
|
# See https://tools.ietf.org/html/rfc1340
|
||||||
|
local ipv4elem="(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]?|0)";
|
||||||
|
# Regex matching an optional port (starting with '#') range of 1-65536
|
||||||
|
local portelem="(#(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?";
|
||||||
|
# Build a full IPv4 regex from the above subexpressions
|
||||||
|
local regex="^${ipv4elem}\\.${ipv4elem}\\.${ipv4elem}\\.${ipv4elem}${portelem}$"
|
||||||
|
|
||||||
|
# Evaluate the regex, and return the result
|
||||||
|
[[ $ip =~ ${regex} ]]
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
return "${stat}"
|
||||||
|
}
|
||||||
|
|
||||||
|
valid_ip6() {
|
||||||
|
local ip=${1}
|
||||||
|
local stat=1
|
||||||
|
|
||||||
|
# Regex matching one IPv6 element, i.e. a hex value from 0000 to FFFF
|
||||||
|
local ipv6elem="[0-9a-fA-F]{1,4}"
|
||||||
|
# Regex matching an IPv6 CIDR, i.e. 1 to 128
|
||||||
|
local v6cidr="(\\/([1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8])){0,1}"
|
||||||
|
# Regex matching an optional port (starting with '#') range of 1-65536
|
||||||
|
local portelem="(#(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))?";
|
||||||
|
# Build a full IPv6 regex from the above subexpressions
|
||||||
|
local regex="^(((${ipv6elem}))*((:${ipv6elem}))*::((${ipv6elem}))*((:${ipv6elem}))*|((${ipv6elem}))((:${ipv6elem})){7})${v6cidr}${portelem}$"
|
||||||
|
|
||||||
|
# Evaluate the regex, and return the result
|
||||||
|
[[ ${ip} =~ ${regex} ]]
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
return "${stat}"
|
||||||
|
}
|
||||||
|
|
||||||
SetWebPassword() {
|
SetWebPassword() {
|
||||||
if [ "${SUDO_USER}" == "www-data" ]; then
|
if [ "${SUDO_USER}" == "www-data" ]; then
|
||||||
echo "Security measure: user www-data is not allowed to change webUI password!"
|
echo "Security measure: user www-data is not allowed to change webUI password!"
|
||||||
@ -613,7 +656,6 @@ Teleporter() {
|
|||||||
host="${host//./_}"
|
host="${host//./_}"
|
||||||
filename="pi-hole-${host:-noname}-teleporter_${datetimestamp}.tar.gz"
|
filename="pi-hole-${host:-noname}-teleporter_${datetimestamp}.tar.gz"
|
||||||
fi
|
fi
|
||||||
# webroot is sourced from basic-install above
|
|
||||||
php "${webroot}/admin/scripts/pi-hole/php/teleporter.php" > "${filename}"
|
php "${webroot}/admin/scripts/pi-hole/php/teleporter.php" > "${filename}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user