Comment enclencher ou déclencher rapidement une carte réseau

Makhak

Membre enregistré
17 Février 2015
8
0
44
Bonjour à tous,

J'aimerai soumettre à vos avis éclairés un petit script réalisé en langage Bash.
Il permet de désactiver/réactiver automatiquement la carte réseau active.
Une chose très utile lorsque l'on veut s'assurer que la carte réseaux ne réponde plus à aucune sollicitation de la part de l'extérieur ou afin de faire rapidement une mise à jour de l'adresse IP de votre carte.

Voici le contenu du script :


/bin/bash
ether=$(sudo scutil --nwi | awk -F " " '{print $1}' | grep "en.$")
var1="Interface désactivée"
var2="Interface réactivée"
test=$(sudo ifconfig -a | grep "inet " | grep -v "inet 127." | awk -F " " '{print $2}')
if [ "$test" = "" ]; then
sudo ifconfig "$ether" down
sudo -n ifconfig "$ether" up
sudo osascript -e "display notification \"$var2\""
else
sudo ifconfig "$ether" -alias
sudo osascript -e "display notification \"$var1\""
fi


Testé chez moi via une application créé grâce à Automator, ce script s'avère d'une rapidité fulgurante.

Pour réussir à le faire tourner à partir d'une application (.app) sans la nécessité d'introduire de mot de passe, j'ai manipulé sudoers (/etc/sudoers) afin de donner les privilèges suffisants à l'utilisateur (cela est impossible à faire si vous n'avez pas déjà des privilèges d'administrateur).
Dans une fenêtre terminal :

sudo chmod 740 /etc/sudoers
sudo visudo


Ci-dessous la partie du fichier /etc/sudoers concernée, et (en gras) la partie à modifier (en remplaçant le premier mot par votre propre nom d'utilisateur, le reste ne change pas) :


# User privilege specification

root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
votrenomd'utilisateur ALL=(ALL) NOPASSWD: /sbin/ifconfig, /usr/sbin/scutil

Une bonne connaissance de l'éditeur VI est très conseillée.
Une fois les modifications effectuées, exécutez
sudo 440 /etc/sudoers
pour le remettre en lecture seule.

N'hésitez pas à me contacter.
 
Le script contenait une erreur à la ligne 5, le voici corrigé (à utiliser à la place du précédent).

/bin/bash
ether=$(sudo scutil --nwi | awk -F " " '{print $1}' | grep "en.$")
var1="Interface désactivée"
var2="Interface réactivée"
test=$(sudo ifconfig -a | grep "$ether" | grep "inet " | grep -v "inet 127." | awk -F " " '{print $2}')
if [ "$test" = "" ]; then
sudo ifconfig "$ether" down
sudo -n ifconfig "$ether" up
sudo osascript -e "display notification \"$var2\""
else
sudo ifconfig "$ether" -alias
sudo osascript -e "display notification \"$var1\""
fi
 
Maintenant ça fonctionne dans tous les cas de figures (sauf si vous avez deux cartes réseaux connectées à internet sur la même machine).

/bin/bash
ether=$(sudo scutil --nwi | awk -F " " '{print $1}' | grep "en.$")
var1="Interface désactivée"
var2="Interface réactivée"
test=$(sudo ifconfig "$ether" | grep "inet " | grep -v "inet 127." | awk -F " " '{print $2}')
if [ "$test" = "" ]; then
sudo ifconfig "$ether" down
sudo ifconfig "$ether" up
sudo osascript -e "display notification \"$var2\""
else
sudo ifconfig "$ether" -alias
sudo osascript -e "display notification \"$var1\""
fi


Bon test!
 
A la place de VI il y a nano comme éditeur autrement plus simple pour du codage de "base".
 
Oui, nano est plus intuitif, mais attention à ne pas l'utiliser pour modifier le fichier sudoers, là, visudo s'impose (afin d'éviter de fatales erreurs de syntaxes lors des modifications).