PDA

View Full Version : [NetworkManager] Problema con script di configurazione


k4ez4r
29-01-2008, 08:59
Beh ok forse parlare di scripting è eccessivo, visto che si tratta di due righe di codice, comunque.... :D

========== INTRO, POTETE SALTARE =========================
Allora con il passaggio all'ultima ubuntu mi sono adeguato anch'io ad usare Network Manager per gestire la rete wifi (in effetti usato su un portatile ha i suoi vantaggi...)
Solo che quando mi collego alla rete di casa ho bisogno di settare anche un gateway, che è diverso dal server che mi assegna l'IP.

Quindi ho pensato a uno script che controlla l'ESSID della rete e, in caso di match, mi setta il gateway tramite il comando route.
=======================================================

#!/bin/sh

# nel caso la rete sia quella di casa, setta il gateway
# l'opzione -q nasconde l'output di grep

if iwconfig eth1 | grep -q mioESSID
then
/sbin/route del default gw 192.168.0.x
/sbin/route add default gw 192.168.0.y
fi

Lo script viene eseguito in automatico, ma necessita dei privilegi di root:

sudo chown root.root mioscript.sh
sudo chmod u+s mioscript.sh

ls -l
-rwsr-xr-x 1 root root 241 2008-01-29 09:39 mioscript.sh

il problema è che quando lo eseguo mi ritorna lo stesso errore che ottengo eseguendo il comando route senza i privilegi di root.

Eppure lo script è di root e ha il SUID attivo...
Sbaglio la sintassi? Non ne so un cavolo di scripting...

ilsensine
29-01-2008, 09:24
Il flag suid per gli script è ignorato, è un possibile buco di sicurezza.

k4ez4r
29-01-2008, 09:34
Il flag suid per gli script è ignorato, è un possibile buco di sicurezza.

ah, pheega, non lo sapevo...
(quando ho visto che avevi risposto te ho pensato: bene, risolto :D)

boh, a sto punto c'è qualche altra soluzione che mi eviti di dare comandi a mano o inserire password, pur continuando a usare Network Manager?

Comunque grazie della dritta!

ilsensine
29-01-2008, 09:48
Esegui lo script come post-up da /etc/network/interfaces (v. man interfaces).

ilsensine
29-01-2008, 09:50
Ah no, se usi il NetworkManager non va bene...non supporta la configurazione di parametri quali il default route o l'esecuzione di script quel programma?

k4ez4r
29-01-2008, 10:00
Ah no, se usi il NetworkManager non va bene...non supporta la configurazione di parametri quali il default route o l'esecuzione di script quel programma?

mmm sto guardando il man di NetworkManagerDispatcher
(di cui effettivamente non conoscevo l'esistenza :p)

sembra fare al caso mio, faccio qualche prova....

Sempre a riguardo ho scoperto anche l'esistenza di nm-tool, che fornisce informazioni sullo stato di NetworkManager.

Grazie!! :)

k4ez4r
29-01-2008, 10:42
Oh finalmente :)

Non pensavo che NetworkManager fosse così personalizzabile...

In sostanza si tratta di aggiungere degli script in /etc/NetworkManager/dispatcher.d/

Nel mio caso ho copiato lo script di prima

#!/bin/sh -e

# nel caso la rete sia quella di casa, setta il gateway
# l'opzione -q nasconde l'output di grep

if iwconfig eth1 | grep -q mioESSID
then
/sbin/route del default gw 192.168.0.x
/sbin/route add default gw 192.168.0.y
fi


sudo chmod +x mioscript

forse sarebbe più corretto aggiungere in cima allo script queste righe

if [ -z "$1" ]; then
echo "$0: called with no interface" 1>&2
exit 1;
fi


@ilsensine
visto che alla fine il problema riguardava NetworkManager,
vedi tu se cambiare il titolo del thread...

Grazie ancora, ciao!