leggi l'articolo di partenza 

Gli script Bash possono semplificare l’implementazione di funzionalità legate al sistema operativo. Octavia Andreea Anghel di DevX propone un tutorial in cui viene illustrato come avviare l’esecuzione di tali script direttamente da PHP, passando dei parametri e ottenendo in output dei risultati da elaborare e/o visualizzare. Come prima cosa è necessario procurarsi una shell Bash per il proprio sistema operativo preferito. La maggior parte dei sistemi UNIX-like, tra cui GNU/Linux e Mac OS X, ne integrano uno, mentre per Windows è necessario scaricarla e installarla scompattando l’archivio e aggiungendo il percorso in cui è stato memorizzato bash.exe nella variabile d’ambiente PATH. Per eseguire uno script Bash da PHP è sufficiente utilizzare la funzione shell_exec, la quale prende come unico parametro una stringa, che rappresenta il percorso assoluto dello script da eseguire e ritorna in uscita un’altrastringa che rappresenta l’output completo del comando. Il prototipo è riportato di seguito:

 

Pagina originale: http://www.gentoo.org/doc/it/sudo-guide.xml

 

1.  Sudo

Assegnare permessi

Il pacchetto app-admin/sudo permette all'amministratore di sistema di concedere ad altri utenti i privilegi per eseguire una o più applicazioni a cui normalmente non avrebbero diritto. Invece di impostare il bit setuid di queste applicazioni sudo permette una gestione migliore di chi può eseguire certi comandi e quando.

Usando sudo puoi creare una lista precisa di chi può eseguire determinati comandi. Se tu impostassi il bit setuid chiunque potrebbe eseguire quell'applicazione (o, a seconda dei permessi utilizzati, ogni membro di un certo gruppo). Con sudo, invece, puoi (e dovresti) richiedere all'utente l'inserimento di una password quando tenta di eseguire tale applicazione e puoi anche gestire permessi differenti in base alla posizione dell'utente: se è loggato nel sistema stesso o se sta usando il sistema tramite SSH da una postazione remota.

Loggare le attività

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

?>