Capitolo 14. Usare PPP e i privilegi di root

Poiché PPP ha bisogno di impostare alcuni dispositivi di rete, modificare la tabella di instradamento del kernel ed altro, richiede i privilegi di root.

Se altri utenti oltre a root devono poter avviare una connessione PPP, il programma pppd deve essere setuid root:-

-rwsr-xr-x   1 root     root        95225 Jul 11 00:27 /usr/sbin/pppd

Se /usr/sbin/pppd non è impostato in questo modo, allora come root si digiti il comando:-

chmod u+s /usr/sbin/pppd

Quello che fa è rendere pppd eseguibile con i privilegi di root anche se l'eseguibile è lanciato da un utente ordinario. Questo permette agli utenti normali di lanciare pppd con i privilegi necessari per impostare le interfacce di rete e la tabella di instradamento del kernel.

I programmi che sono eseguiti come 'set uid root' potenzialmente sono dei buchi di sicurezza e si dovrebbe essere estremamente cauti nel fare programmi 'suid root'. Un certo numero di programmi (incluso pppd) è stato scritto con tutte le attenzioni per minimizzare i pericoli conseguenti alla loro esecuzione in suid root, quindi dovrebbe essere sicuro farlo (ma non ci sono garanzie).

A seconda di come si vuole che il proprio sistema funzioni - specificatamente se si vuole che QUALSIASI utente nel proprio sistema sia in grado si avviare una connessione PPP, si dovrebbero rendere i propri script ppp-on/off leggibili ed eseguibili al mondo intero. (Probabilmente questo va bene solo se il proprio PC è usato SOLO da se stessi).

Comunque, se NON si vuole che qualsiasi utente sia in grado di avviare una connessione PPP (per esempio, i propri figli hanno un account sulla macchina Linux e non si vuole che vadano in giro per Internet senza una supervisione), bisogna creare un gruppo PPP (come root, si modifichi il file /etc/group) e:-

Anche se si fa questo, gli utenti ordinari non saranno ANCORA in grado di disattivare la connessione via software! L'esecuzione dello script ppp-off richiede i privilegi di root. Comunque, qualsiasi utente può semplicemente spegnere il modem (o disconnettere la linea telefonica da un modem interno).

Un'alternativa (e miglior metodo) a questa impostazione è di usare il programma sudo. Questo offre maggiore sicurezza e permetterà di impostare le cose in modo tale che qualsiasi utente (autorizzato) possa attivare/disattivare la connessione usando gli script. Utilizzando sudo si permetterà ad un utente autorizzato di attivare/disattivare la connessione PPP in modo pulito e sicuro.