|
Tramite visudo, occorre aggiungere:
www-data ALL=NOPASSWD: /usr/sbin/squid3 - k reconfigure
In tal modo si abilita l'utente www-data (quello di apache2) da qualsiasi macchina si connetta (ALL ) senza richiedere la digitazione della password (NOPASSWD:) ad eseguire il comando /usr/sbin/squid3 -k reconfigure
Lo script poi lo si esegue con il comando php shell_exec:
<?php
$RIS=shell_exec(' sudo percorso e nome script');
echo ($RIS);
$RIS è la variabile dovesi memorizza il codice di uscita dello script
?>
Il problema di partenza, è quello di riconfigurare squid 3, dopo aver cambiato la configurazione. Infatti, mentre le precedenti versioni di squid2, lanciare il comando squid - k reconfigure non portava alcun problema per il traffico locale in quel momento, cioé durante la riconfigurazione tutto continuava a funzionare, in squid3 si ottiene un errore del tipo:
ERROR
The requested URL could not be retrieved
The following error was encountered while trying to retrieve the URL: (null)://172.16.1.1/test.php
Quindi, per poter utilizzare lo script per abilitare e disabilitare l'accesso ad internet nelle aule di informatica della scuola, non si può utilizzare l'aggiornamento di cron ogni minuto, perché, appunto, la navigazione diviene impossibile.
L'alternativa è quindi quella di lanciare l'aggiornamento di squid, ogni qualvolta ci sia la necessità di attivare/disattivare gli accessii, e non ogni minuto.
Per fare questo, si deve utilizzare il comando sudo, e fare eseguire lo script, dall'utente www-data (se ovviamente si sta utilizzando un web server ) come se fosse root.
|