Hello Jose Moyano,

"sudo" only works if run from a valid terminal. This may be the problem with
your script.

2011/9/21 José Moyano <[email protected]>

> Hi everybody,
>
> I write the following script to make network manager dispatcher to
> change the proxy automagically based on site IP.
>
> #!/bin/sh
>
> IF=$1
> STATUS=$2
>
> echo "-----------------------------------------------------------------" >>
> \
>    /var/log/autoproxy.log
>
> date >> /var/log/autoproxy.log
>
> echo "Configuring proxy..." >> /var/log/autoproxy.log
> NETMASK=<somemask>
>
> if [ -n "`/sbin/ip addr show to $NETMASK`" ]; then
>    echo "Address with proxy detected..." >> /var/log/autoproxy.log
>
>    PROXY_HOST="proxy.something.ar"
>    PROXY_PORT="8080"
>
>    for user in "jose"
>    do
>        echo "Setting proxy for user $user" >> /var/log/autoproxy.log
>
>        /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
>            --config-source=xml::/home/$user/.gconf --type string \
>            --set /system/http_proxy/host $PROXY_HOST >> \
>            /var/log/autoproxy.log
>
>        /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
>            --config-source=xml::/home/$user/.gconf --type int \
>            --set /system/http_proxy/port $PROXY_PORT >> \
>            /var/log/autoproxy.log
>
>        /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
>            --config-source=xml::/home/$user/.gconf --type bool \
>            --set /system/http_proxy/use_same_proxy true >> \
>            /var/log/autoproxy.log
>
>        /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
>            --config-source=xml::/home/$user/.gconf --type bool \
>            --set /system/http_proxy/use_http_proxy true >> \
>            /var/log/autoproxy.log
>
>        /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
>            --config-source=xml::/home/$user/.gconf --type string \
>            --set /system/proxy/mode manual >> /var/log/autoproxy.log
>    done
> else
>    echo "The address has no proxy known" >> /var/log/autoproxy.log
>
>    # Clear proxy configuration for all users
>    for user in "jose"
>    do
>        /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
>            --config-source=xml::/home/$user/.gconf \
>            --unset /system/http_proxy/host
>
>        /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
>            --config-source=xml::/home/$user/.gconf \
>            --unset /system/http_proxy/port
>
>        /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
>            --config-source=xml::/home/$user/.gconf \
>            --unset /system/http_proxy/use_same_proxy
>
>        /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
>            --config-source=xml::/home/$user/.gconf \
>            --unset /system/http_proxy/use_http_proxy
>
>        /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
>            --config-source=xml::/home/$user/.gconf \
>            --unset /system/proxy/mode
>    done
> fi
>
> echo "Proxy configuration done" >> /var/log/autoproxy.log
>
> Funny thing, the script works if executed manually as root. When the
> script is executed by network manager dispatcher, the calls to
> gconftool-2 do nothing. The script is executed because all the log
> printing can be seen in the /var/log/autoproxy.log file. I tried
> adding other commands to the script, printing whoami (replies "root")
> and everything seems to be fine. However, gconftool-2 has no effect in
> the gnome configuration.
> Does anyone know what can be the problem?
> Thanks in advance!
>
> José.
> _______________________________________________
> networkmanager-list mailing list
> [email protected]
> http://mail.gnome.org/mailman/listinfo/networkmanager-list
>
_______________________________________________
networkmanager-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to