Vorrei che fosse possibile lanciare la connessione da utente semplice.
Sono solito configurare la connessione nel seguente modo:
1- creo uno script chat con i comandi di inizializzazione del modem e il lancio della sessione PPP (CONNECT)
2- creo uno script per pppd che al suo interno richiama lo script chat del punto precedente.
3- lancio la connessione col comando: pppd call script_pppd
4- si noti che non utilizzo script ulteriori tipo pon poff e simili, ma lancio direttamente pppd.
Problema:
- per lanciare la connessione devo essere loggato come root in quanto pppd va a lavorare su files che richiedono tali privilegi.
Soluzione:
Leggendo un vecchio documento, il PPP-HOWTO: http://www.tldp.org/HOWTO/PPP-HOWTO/root.html
leggo che se si vuole che un utente semplice possa lanciare pppd e connettersi ad internet, è possibile aggiungere all'eseguibile pppd il "setuid root".
- Codice: Seleziona tutto
-rwsr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd
In questo modo però tutti gli utenti semplici potranno lanciare la connessione e da come ho capito non è il massimo della vita e potrebbe essere un buco di scurezza... La mia poca esperienza non mi lascia immagginare scenari in cui questo possa essere pericoloso qualora il PC sia utilizzato da un singolo utente. Eventualmente fate qualche esempio voi.
Per rendere la situazione più sicura si consiglia la seguente procedura:
1- Si crea un gruppo chiamato per esempio "ppp"
2- Si cambiano i permessi e la proprietà di pppd in modo che sia setuid root, che appartenga al gruppo "ppp" e che sia leggibile ed eseguibile solo dal proprietario "root" e dagli utenti appartenti al gruppo "ppp".
- Codice: Seleziona tutto
-rwsr-x--- 1 root PPP 95225 Jul 11 00:27 /usr/sbin/pppd
3- A questo punto si aggiunge l'utente semplice a cui si vuole consentire il lancio della connessione al gruppo ppp e questo dovrebbe riuscire a lanciare la connessione senza necessità di loggarsi come root.
Dal canto mio sapevo che era possibile anche utilizzare una soluzione con "sudo".
Qual'è la soluzione migliore e in che caso?
