Temporarily disable Pi-Hole: Difference between revisions

From WickyWiki
Created page with "Category:202211 Category:Ubuntu Category:Ubuntu System = Create scripts = <syntaxhighlight lang=bash> sudo nano /home/pi/wjv-pause-pihole-5m.sh sudo /usr/local/bin/pihole disable 5m </syntaxhighlight> <syntaxhighlight lang=bash> sudo nano /home/pi/wjv-pause-pihole-10m.sh sudo /usr/local/bin/pihole disable 10m </syntaxhighlight> = Make executable = <syntaxhighlight lang=bash> sudo chmod +x /home/pi/wjv-pause-pihole-*.sh </syntaxhighlight> = Install all..."
 
Line 87: Line 87:


* [[Allow a user to sudo execute a script without password]]
* [[Allow a user to sudo execute a script without password]]
* [[Raspberry Pi - Pi-Hole Network-wide ad blocking]]

Revision as of 22:19, 28 November 2022


Create scripts

sudo nano /home/pi/wjv-pause-pihole-5m.sh
	sudo /usr/local/bin/pihole disable 5m
sudo nano /home/pi/wjv-pause-pihole-10m.sh
	sudo /usr/local/bin/pihole disable 10m

Make executable

sudo chmod +x /home/pi/wjv-pause-pihole-*.sh

Install all scripts to root

sudo cp -v /home/pi/wjv-*.* /root/.

Create sudoers file, add lines

Allow webserver user to execute the scripts.

sudo visudo /etc/sudoers.d/wjv-pause-pihole
	www-data ALL=NOPASSWD: /root/wjv-pause-pihole-5m.sh
	www-data ALL=NOPASSWD: /root/wjv-pause-pihole-10m.sh

PHP page

sudo nano /var/www/html/wjv-pause-pihole.php
<?php
$run = $_GET['run'];
$until = $_GET['until'];
if (isset($run)) {
        $output = shell_exec("sudo /root/wjv-pause-pihole-" . $run . "m.sh");
        $output = str_replace(array("\n", "\r"),"",htmlentities($output, ENT_QUOTES));
        if (strpos($output,"Blocking already disabled")) {
                $until = "unknown";
        }
        elseif (strpos($output,"Pi-hole Disabled")) {
                $until = date('H:i:s', strtotime("+". $run . " minutes"));
        }
        else {
                $until = "failed";
        }
        header("Location: ?output=$output&until=$until");
        die();
}
elseif (isset($until)) {
        $output=$_GET['output'];
        if ($until == "unknown") {
                echo "<hr/> Pi-Hole Adblocker previously disabled, you need to wait";
        }
        elseif ($until == "failed") {
                echo "<hr/> Pi-Hole Adblocker disable failed";
        }
        else {
                echo "<hr/> Pi-Hole Adblocker DISABLED until $until";
        }
}
else {  $output=$_GET['output'];
        echo "<hr/> <form action='/wjv-pause-pihole.php'><input type=hidden name=run value='5'/>";
        echo "<input type=submit value='Disable Pi-Hole Adblocker for 5 minutes'/></form>";
        echo "<hr/> <form action='/wjv-pause-pihole.php'><input type=hidden name=run value='10'/>";
        echo "<input type=submit value='Disable Pi-Hole Adblocker for 10 minutes'/></form>";
}
echo "<hr/> Output: $output<hr/>";
?>

See also