Activer/desactiver l'utilisation d'un proxy

Publié le par Levi59

Je rajoute mon dernier script!

Il me sert à activer ou désactiver automatiquement l'utilisation du proxy pour apt, vlc, audacious et emesene en fonction du réseau wifi.

(Pour apt, je n'ai qu'une seule ligne dans mon fichier, donc il sera peut être nécessaire de préciser la modification pour certains)

Télécharger le script


  • sudo gedit /usr/bin/confproxy
#!/bin/bash
##Crée par Rodolphe Rombeaut
## Description : Ce script permet d'activer ou de desactiver l'option de
## connexion avec proxy selon le réseau auquel vous etes connecté. Idéal
## pour votre PC portable entre le bureau ou la Fac et le domicile!
# Copyright (C) 2009, Rombeaut Rodolphe
# http://scriptam.over-blog.com/
# Released into the public domain.

#fichiers de conf
    export apt="/etc/apt/apt.conf"
    export vlc="/home/akira/.config/vlc/vlcrc"
    export audacious="/home/akira/.config/audacious/config"
    export emesene="/home/akira/.config/emesene1.0/config"

#Verifier ESSID
    modeustl=`iwconfig wlan0 | grep 'ESSID:"' | cut -d'"' -f2`

# recupérer ligne de config des fichiers
    aptconf=`cat $apt`
    vlcrc=`cat $vlc | grep http-proxy\=`
    audaciousconf=`cat $audacious | grep use_proxy\=`
    emeseneconf=`cat $emesene | grep useProxy\=`

    if [ "$modeustl" != "USTL" ]
    then
    #Pas de proxy - pas sur campus. donc desactiver option proxy
        a="Acquire"
        b="#Acquire"
        c="http-proxy="
        d="#http-proxy="
        e="TRUE"
        f="FALSE"
        g="1"
        h="0"
        echo sur réseau sans proxy
    else
        #proxy ustl sur campus donc activer option proxy
        a="#Acquire"
        b="Acquire"
        c="#http-proxy="
        d="http-proxy="
        e="FALSE"
        f="TRUE"
        g="0"
        h="1"
        echo sur réseau avec proxy
    fi
 
    x="use_proxy="
    w="useProxy="
    # test si la modification est deja faite ou non (reduction des ecritures pour SSD)

    if [ "$b" != "${aptconf:0:${#b}}" ]
    then
        sed -i 's/'$a'/'$b'/g' $apt
        echo "---------------------"
        echo "apt fait"
    fi

    if [ "$d" != "${vlcrc:0:${#d}}" ]
    then
        sed -i 's/'$c'/'$d'/g' $vlc
        echo "---------------------"
        echo "vlc fait"
    fi

    if [ "$f" != "${audaciousconf:${#x}:${#f}}" ]
    then
        sed -i 's/'$x''$e'/'$x''$f'/g' $audacious
        echo "---------------------"
        echo "audacious fait"
    fi

    if [ "$h" != "${emeseneconf:${#w}:${#h}}" ]
    then
        sed -i 's/'$w''$g'/'$w''$h'/g' $emesene
        echo "---------------------"
        echo "emesene fait"
    fi

echo "---------------------"
echo apt
cat $apt
echo "---------------------"
echo vlc
cat $vlc | grep http-proxy\=
echo "---------------------"
echo audacious
cat $audacious | grep use_proxy\=
echo "---------------------"
echo emesene
cat $emesene | grep useProxy\=
exit
  • sudo chmod 755 /usr/bin/confproxy

Il faut autoriser confproxy à être lancé en sudo sans mot de passe (iwconfig et l'édition de apt-conf)

  • sudo visudo

Rajouter:

ALL ALL=NOPASSWD:/usr/bin/confproxy

Lancer le script à la connexion:

  • sudo gedit /etc/NetworkManager/dispatcher.d/02confproxy
#!/bin/sh

sudo confproxy && exit 0

echo "OK"

exit 1

Publié dans Internet et réseaux

Commenter cet article