mirror of
https://github.com/pi-hole/pi-hole
synced 2024-12-22 14:58:08 +00:00
Replaces cp chmod with install and add read permission to repository files after checkout and pull
Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>
This commit is contained in:
parent
8a92fb24c4
commit
2c3a27e9c7
@ -414,6 +414,8 @@ make_repo() {
|
|||||||
fi
|
fi
|
||||||
# Clone the repo and return the return code from this command
|
# Clone the repo and return the return code from this command
|
||||||
git clone -q --depth 1 "${remoteRepo}" "${directory}" &> /dev/null || return $?
|
git clone -q --depth 1 "${remoteRepo}" "${directory}" &> /dev/null || return $?
|
||||||
|
# Data in the repositories is public anyway so we can make it readable by everyone (+r to keep executable permission if already set by git)
|
||||||
|
chmod -R a+r "${directory}"
|
||||||
# Show a colored message showing it's status
|
# Show a colored message showing it's status
|
||||||
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
||||||
# Always return 0? Not sure this is correct
|
# Always return 0? Not sure this is correct
|
||||||
@ -447,6 +449,8 @@ update_repo() {
|
|||||||
git pull --quiet &> /dev/null || return $?
|
git pull --quiet &> /dev/null || return $?
|
||||||
# Show a completion message
|
# Show a completion message
|
||||||
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
||||||
|
# Data in the repositories is public anyway so we can make it readable by everyone (+r to keep executable permission if already set by git)
|
||||||
|
chmod -R a+r "${directory}"
|
||||||
# Move back into the original directory
|
# Move back into the original directory
|
||||||
cd "${curdir}" &> /dev/null || return 1
|
cd "${curdir}" &> /dev/null || return 1
|
||||||
return 0
|
return 0
|
||||||
@ -494,6 +498,8 @@ resetRepo() {
|
|||||||
printf " %b %s..." "${INFO}" "${str}"
|
printf " %b %s..." "${INFO}" "${str}"
|
||||||
# Use git to remove the local changes
|
# Use git to remove the local changes
|
||||||
git reset --hard &> /dev/null || return $?
|
git reset --hard &> /dev/null || return $?
|
||||||
|
# Data in the repositories is public anyway so we can make it readable by everyone (+r to keep executable permission if already set by git)
|
||||||
|
chmod -R a+r "${directory}"
|
||||||
# And show the status
|
# And show the status
|
||||||
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
||||||
# Returning success anyway?
|
# Returning success anyway?
|
||||||
@ -1241,8 +1247,7 @@ version_check_dnsmasq() {
|
|||||||
printf "%b %b Backing up dnsmasq.conf to dnsmasq.conf.orig...\\n" "${OVER}" "${TICK}"
|
printf "%b %b Backing up dnsmasq.conf to dnsmasq.conf.orig...\\n" "${OVER}" "${TICK}"
|
||||||
printf " %b Restoring default dnsmasq.conf..." "${INFO}"
|
printf " %b Restoring default dnsmasq.conf..." "${INFO}"
|
||||||
# and replace it with the default
|
# and replace it with the default
|
||||||
cp -p ${dnsmasq_original_config} ${dnsmasq_conf}
|
install -D -m 644 -T ${dnsmasq_original_config} ${dnsmasq_conf}
|
||||||
chmod 644 ${dnsmasq_conf}
|
|
||||||
printf "%b %b Restoring default dnsmasq.conf...\\n" "${OVER}" "${TICK}"
|
printf "%b %b Restoring default dnsmasq.conf...\\n" "${OVER}" "${TICK}"
|
||||||
# Otherwise,
|
# Otherwise,
|
||||||
else
|
else
|
||||||
@ -1253,19 +1258,17 @@ version_check_dnsmasq() {
|
|||||||
# If a file cannot be found,
|
# If a file cannot be found,
|
||||||
printf " %b No dnsmasq.conf found... restoring default dnsmasq.conf..." "${INFO}"
|
printf " %b No dnsmasq.conf found... restoring default dnsmasq.conf..." "${INFO}"
|
||||||
# restore the default one
|
# restore the default one
|
||||||
cp -p ${dnsmasq_original_config} ${dnsmasq_conf}
|
install -D -m 644 -T ${dnsmasq_original_config} ${dnsmasq_conf}
|
||||||
printf "%b %b No dnsmasq.conf found... restoring default dnsmasq.conf...\\n" "${OVER}" "${TICK}"
|
printf "%b %b No dnsmasq.conf found... restoring default dnsmasq.conf...\\n" "${OVER}" "${TICK}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf " %b Copying 01-pihole.conf to /etc/dnsmasq.d/01-pihole.conf..." "${INFO}"
|
printf " %b Copying 01-pihole.conf to /etc/dnsmasq.d/01-pihole.conf..." "${INFO}"
|
||||||
# Check to see if dnsmasq directory exists (it may not due to being a fresh install and dnsmasq no longer being a dependency)
|
# Check to see if dnsmasq directory exists (it may not due to being a fresh install and dnsmasq no longer being a dependency)
|
||||||
if [[ ! -d "/etc/dnsmasq.d" ]];then
|
if [[ ! -d "/etc/dnsmasq.d" ]];then
|
||||||
mkdir "/etc/dnsmasq.d"
|
install -d -m 755 "/etc/dnsmasq.d"
|
||||||
chmod 755 "/etc/dnsmasq.d"
|
|
||||||
fi
|
fi
|
||||||
# Copy the new Pi-hole DNS config file into the dnsmasq.d directory
|
# Copy the new Pi-hole DNS config file into the dnsmasq.d directory
|
||||||
cp ${dnsmasq_pihole_01_snippet} ${dnsmasq_pihole_01_location}
|
install -D -m 644 -T ${dnsmasq_pihole_01_snippet} ${dnsmasq_pihole_01_location}
|
||||||
chmod 644 ${dnsmasq_pihole_01_location}
|
|
||||||
printf "%b %b Copying 01-pihole.conf to /etc/dnsmasq.d/01-pihole.conf\\n" "${OVER}" "${TICK}"
|
printf "%b %b Copying 01-pihole.conf to /etc/dnsmasq.d/01-pihole.conf\\n" "${OVER}" "${TICK}"
|
||||||
# Replace our placeholder values with the GLOBAL DNS variables that we populated earlier
|
# Replace our placeholder values with the GLOBAL DNS variables that we populated earlier
|
||||||
# First, swap in the interface to listen on
|
# First, swap in the interface to listen on
|
||||||
@ -1381,19 +1384,15 @@ installConfigs() {
|
|||||||
if [[ "${INSTALL_WEB_SERVER}" == true ]]; then
|
if [[ "${INSTALL_WEB_SERVER}" == true ]]; then
|
||||||
# and if the Web server conf directory does not exist,
|
# and if the Web server conf directory does not exist,
|
||||||
if [[ ! -d "/etc/lighttpd" ]]; then
|
if [[ ! -d "/etc/lighttpd" ]]; then
|
||||||
# make it
|
# make it and set the owners
|
||||||
mkdir /etc/lighttpd
|
install -d -m 755 -o "${USER}" -g root /etc/lighttpd
|
||||||
# and set the owners
|
|
||||||
chown "${USER}":root /etc/lighttpd
|
|
||||||
chmod 755 /etc/lighttpd
|
|
||||||
# Otherwise, if the config file already exists
|
# Otherwise, if the config file already exists
|
||||||
elif [[ -f "/etc/lighttpd/lighttpd.conf" ]]; then
|
elif [[ -f "/etc/lighttpd/lighttpd.conf" ]]; then
|
||||||
# back up the original
|
# back up the original
|
||||||
mv /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.conf.orig
|
mv /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.conf.orig
|
||||||
fi
|
fi
|
||||||
# and copy in the config file Pi-hole needs
|
# and copy in the config file Pi-hole needs
|
||||||
cp ${PI_HOLE_LOCAL_REPO}/advanced/${LIGHTTPD_CFG} /etc/lighttpd/lighttpd.conf
|
install -D -m 644 -T ${PI_HOLE_LOCAL_REPO}/advanced/${LIGHTTPD_CFG} /etc/lighttpd/lighttpd.conf
|
||||||
chmod 644 /etc/lighttpd/lighttpd.conf
|
|
||||||
# Make sure the external.conf file exists, as lighttpd v1.4.50 crashes without it
|
# Make sure the external.conf file exists, as lighttpd v1.4.50 crashes without it
|
||||||
touch /etc/lighttpd/external.conf
|
touch /etc/lighttpd/external.conf
|
||||||
chmod 644 /etc/lighttpd/external.conf
|
chmod 644 /etc/lighttpd/external.conf
|
||||||
@ -1427,21 +1426,16 @@ install_manpage() {
|
|||||||
fi
|
fi
|
||||||
if [[ ! -d "/usr/local/share/man/man8" ]]; then
|
if [[ ! -d "/usr/local/share/man/man8" ]]; then
|
||||||
# if not present, create man8 directory
|
# if not present, create man8 directory
|
||||||
mkdir /usr/local/share/man/man8
|
install -d -m 755 /usr/local/share/man/man8
|
||||||
chmod 755 /usr/local/share/man/man8
|
|
||||||
fi
|
fi
|
||||||
if [[ ! -d "/usr/local/share/man/man5" ]]; then
|
if [[ ! -d "/usr/local/share/man/man5" ]]; then
|
||||||
# if not present, create man5 directory
|
# if not present, create man5 directory
|
||||||
mkdir /usr/local/share/man/man5
|
install -d -m 755 /usr/local/share/man/man5
|
||||||
chmod 755 /usr/local/share/man/man5
|
|
||||||
fi
|
fi
|
||||||
# Testing complete, copy the files & update the man db
|
# Testing complete, copy the files & update the man db
|
||||||
cp ${PI_HOLE_LOCAL_REPO}/manpages/pihole.8 /usr/local/share/man/man8/pihole.8
|
install -D -m 644 -T ${PI_HOLE_LOCAL_REPO}/manpages/pihole.8 /usr/local/share/man/man8/pihole.8
|
||||||
chmod 644 /usr/local/share/man/man8/pihole.8
|
install -D -m 644 -T ${PI_HOLE_LOCAL_REPO}/manpages/pihole-FTL.8 /usr/local/share/man/man8/pihole-FTL.8
|
||||||
cp ${PI_HOLE_LOCAL_REPO}/manpages/pihole-FTL.8 /usr/local/share/man/man8/pihole-FTL.8
|
install -D -m 644 -T ${PI_HOLE_LOCAL_REPO}/manpages/pihole-FTL.conf.5 /usr/local/share/man/man5/pihole-FTL.conf.5
|
||||||
chmod 644 /usr/local/share/man/man8/pihole-FTL.8
|
|
||||||
cp ${PI_HOLE_LOCAL_REPO}/manpages/pihole-FTL.conf.5 /usr/local/share/man/man5/pihole-FTL.conf.5
|
|
||||||
chmod 644 /usr/local/share/man/man5/pihole-FTL.conf.5
|
|
||||||
if mandb -q &>/dev/null; then
|
if mandb -q &>/dev/null; then
|
||||||
# Updated successfully
|
# Updated successfully
|
||||||
printf "%b %b man pages installed and database updated\\n" "${OVER}" "${TICK}"
|
printf "%b %b man pages installed and database updated\\n" "${OVER}" "${TICK}"
|
||||||
@ -1671,7 +1665,7 @@ installPiholeWeb() {
|
|||||||
# Install the directory
|
# Install the directory
|
||||||
install -d -m 0755 ${PI_HOLE_BLOCKPAGE_DIR}
|
install -d -m 0755 ${PI_HOLE_BLOCKPAGE_DIR}
|
||||||
# and the blockpage
|
# and the blockpage
|
||||||
install -D ${PI_HOLE_LOCAL_REPO}/advanced/{index,blockingpage}.* ${PI_HOLE_BLOCKPAGE_DIR}/
|
install -D -m 644 ${PI_HOLE_LOCAL_REPO}/advanced/{index,blockingpage}.* ${PI_HOLE_BLOCKPAGE_DIR}/
|
||||||
|
|
||||||
# Remove superseded file
|
# Remove superseded file
|
||||||
if [[ -e "${PI_HOLE_BLOCKPAGE_DIR}/index.js" ]]; then
|
if [[ -e "${PI_HOLE_BLOCKPAGE_DIR}/index.js" ]]; then
|
||||||
@ -1721,10 +1715,8 @@ installCron() {
|
|||||||
local str="Installing latest Cron script"
|
local str="Installing latest Cron script"
|
||||||
printf "\\n %b %s..." "${INFO}" "${str}"
|
printf "\\n %b %s..." "${INFO}" "${str}"
|
||||||
# Copy the cron file over from the local repo
|
# Copy the cron file over from the local repo
|
||||||
cp ${PI_HOLE_LOCAL_REPO}/advanced/Templates/pihole.cron /etc/cron.d/pihole
|
|
||||||
# File must not be world or group writeable and must be owned by root
|
# File must not be world or group writeable and must be owned by root
|
||||||
chmod 644 /etc/cron.d/pihole
|
install -D -m 644 -T -o root -g root ${PI_HOLE_LOCAL_REPO}/advanced/Templates/pihole.cron /etc/cron.d/pihole
|
||||||
chown root:root /etc/cron.d/pihole
|
|
||||||
# Randomize gravity update time
|
# Randomize gravity update time
|
||||||
sed -i "s/59 1 /$((1 + RANDOM % 58)) $((3 + RANDOM % 2))/" /etc/cron.d/pihole
|
sed -i "s/59 1 /$((1 + RANDOM % 58)) $((3 + RANDOM % 2))/" /etc/cron.d/pihole
|
||||||
# Randomize update checker time
|
# Randomize update checker time
|
||||||
@ -1855,8 +1847,7 @@ installLogrotate() {
|
|||||||
local str="Installing latest logrotate script"
|
local str="Installing latest logrotate script"
|
||||||
printf "\\n %b %s..." "${INFO}" "${str}"
|
printf "\\n %b %s..." "${INFO}" "${str}"
|
||||||
# Copy the file over from the local repo
|
# Copy the file over from the local repo
|
||||||
cp ${PI_HOLE_LOCAL_REPO}/advanced/Templates/logrotate /etc/pihole/logrotate
|
install -D -m 644 -T ${PI_HOLE_LOCAL_REPO}/advanced/Templates/logrotate /etc/pihole/logrotate
|
||||||
chmod 644 /etc/pihole/logrotate
|
|
||||||
# Different operating systems have different user / group
|
# Different operating systems have different user / group
|
||||||
# settings for logrotate that makes it impossible to create
|
# settings for logrotate that makes it impossible to create
|
||||||
# a static logrotate file that will work with e.g.
|
# a static logrotate file that will work with e.g.
|
||||||
@ -2120,6 +2111,8 @@ checkout_pull_branch() {
|
|||||||
printf " %b %s" "${INFO}" "$str"
|
printf " %b %s" "${INFO}" "$str"
|
||||||
git checkout "${branch}" --quiet || return 1
|
git checkout "${branch}" --quiet || return 1
|
||||||
printf "%b %b %s\\n" "${OVER}" "${TICK}" "$str"
|
printf "%b %b %s\\n" "${OVER}" "${TICK}" "$str"
|
||||||
|
# Data in the repositories is public anyway so we can make it readable by everyone (+r to keep executable permission if already set by git)
|
||||||
|
chmod -R a+r "${directory}"
|
||||||
|
|
||||||
git_pull=$(git pull || return 1)
|
git_pull=$(git pull || return 1)
|
||||||
|
|
||||||
@ -2532,8 +2525,7 @@ main() {
|
|||||||
# Display welcome dialogs
|
# Display welcome dialogs
|
||||||
welcomeDialogs
|
welcomeDialogs
|
||||||
# Create directory for Pi-hole storage
|
# Create directory for Pi-hole storage
|
||||||
mkdir -p /etc/pihole/
|
install -d -m 755 /etc/pihole/
|
||||||
chmod 755 /ect/pihole/
|
|
||||||
# Determine available interfaces
|
# Determine available interfaces
|
||||||
get_available_interfaces
|
get_available_interfaces
|
||||||
# Find interfaces and let the user choose one
|
# Find interfaces and let the user choose one
|
||||||
|
Loading…
Reference in New Issue
Block a user