EDIT : retire les sudo dans le script, il ne servent à rien.
Il suffit de lancer le script avec sudo
Voyons déjà si il marche (normalement oui).
Pour vérifier, fausse l'adresse mac de référence pour lui faire croire qu'il est pas chez toi, puis remet la bonne adresse et relance... Essai aussi de le lancer plusieurs fois avec la fausse adresse pour voir si il n'ajoute pas plusieurs "#". (normalement il ne fait rien si la modification est déjà faite)
Si il fait ce qu'on lui demande, il va falloir lui donner le droit de modifier un fichier système (sudo sed sur /etc/hosts) sans demander le mot de passe (obligatoire si tu veux que ce soit automatique). Commence par l'enregistrer dans le dossier de ton choix et créer un lien symbolique entre le script et le PATH si le script n'y est pas déjà :
sudo ls -s /cheminversle/script /usr/bin/switchhosts
puis
sudo visudo
Rajouter:
ALL ALL=NOPASSWD:/usr/bin/switchhosts
À la fin.
(Un conseil, passe la propriété du script à root et changer les droit pour les mettre uniquement en lecture et exécution pour tous, histoire que personne, hormis un admin avec le mot de passe de ton PC, ne modifie le script pour lui faire faire n'importe quoi...
Je n'ai plus la manip en tête pour ça)
Une fois fait:
sudo gedit /etc/NetworkManager/dispatcher.d/02switchhosts
et colle y ceci:
#!/bin/sh
switchhosts
echo "OK"
exit 0
Et voilà, normalement, à la connexion, il effectuera les changements selon le réseau auquel il se connecte.