proxyだって?どこの田舎よ?
/etc/NetworkManager/dispatcher.d/99-proxy
/etc/sysconfig/proxy
PROXYTARGET? リストに一致するプロファイルに切り換えられたとき、ログインしている人のgnomeプロキシ設定を変更する。もちろん、gnome専用。
少なくとも、chromeは追従してくれるので大変便利。
追従しない子用には、libproxyを使うニセproxyをローカルに立てとけばよいかな...
/etc/NetworkManager/dispatcher.d/99-proxy
#!/bin/bash PATH=/bin:/usr/bin:/sbin if [ ! -f /etc/sysconfig/proxy ]; then exit fi . /etc/sysconfig/proxy if [ x"$2" = x"down" ]; then exit fi i=0 while [ "x$(eval echo '$'PROXYTARGET$i)x" != "xx" ]; do for t in `echo $(eval echo '$'PROXYTARGET$i) | sed s/:/\ /g`; do if [ x"$t" = x"$CONNECTION_ID" ]; then PROXY=$(eval echo '$'PROXYTARGET${i}_PROXY) NO_PROXY=$(eval echo '$'PROXYTARGET${i}_NO_PROXY) break fi done if [ -n "$PROXY" ]; then break fi let i=$i+1 done if [ -n "$PROXY" ]; then PROXY=`echo $PROXY | sed s,http://,,` HOST=`echo $PROXY | cut -d: -f1` PORT=`echo $PROXY | cut -d: -f2|sed s,/,,g` fi for pid in `pgrep gnome-session`; do uid=`cat /proc/$pid/loginuid` uname=`getent passwd $uid | cut -d: -f 1` bus=`strings /proc/$pid/environ|grep DBUS_SESSION_BUS_ADDRESS` if [ -n "$PROXY" ]; then su -c "$bus gsettings set org.gnome.system.proxy mode manual" $uname su -c "$bus gsettings set org.gnome.system.proxy.http host $HOST" $uname su -c "$bus gsettings set org.gnome.system.proxy.http port $PORT" $uname su -c "$bus gsettings set org.gnome.system.proxy.https host $HOST" $uname su -c "$bus gsettings set org.gnome.system.proxy.https port $PORT" $uname else su -c "$bus gsettings set org.gnome.system.proxy mode none" $uname fi done
/etc/sysconfig/proxy
PROXYTARGET0="プロファイル名:プロファイル名:プロファイル名" PROXYTARGET0_PROXY="http://プロキシ:ポート/" PROXYTARGET0_NO_PROXY="除外,リスト,たち"
PROXYTARGET? リストに一致するプロファイルに切り換えられたとき、ログインしている人のgnomeプロキシ設定を変更する。もちろん、gnome専用。
少なくとも、chromeは追従してくれるので大変便利。
追従しない子用には、libproxyを使うニセproxyをローカルに立てとけばよいかな...
コメント
コメントを投稿