OS X Lionで使用したネットワークスクリプトがいくつかあり、ssh接続を自動的に作成し、ローカルマシンのネットワーク構成を変更してsshトンネルを介してトラフィックを実行しました。次のシェルコマンドを使用してネットワーク構成を変更しました。
networksetup -setsocksfirewallproxy "Wi-Fi" localhost ####
networksetup -setsocksfirewallproxystate "Wi-Fi" on
現在、Mountain Lionでは、スクリプトを実行するたびに両方のパスワードを要求されますが、これは非常に面倒です。パスワードを記憶させる方法、バイパスする方法、または初めてパスワードを入力して記憶させる方法はありますか?
これがセキュリティの観点から正しい方法であるかどうかはわかりませんが、機能します。
1)/ usr/sbin /内のnetworksetupを別のファイルにコピーします(これにより、それを使用する他のすべてのサービスは、実行時に引き続きパスワードを要求します):
Sudo cp /usr/sbin/networksetup /usr/sbin/NewNetConfig
2)NewNetConfigを呼び出すときにパスワードをスキップするには、sudoersファイルに次の行を追加します。
username ALL=NOPASSWD: /usr/sbin/NewNetConfig
3)再起動します。次に、これを使用してネットワーク構成を変更すると、パスワードを要求されないはずです。
Sudo NewNetConfig -setsocksfirewallproxy "Wi-Fi" localhost ####
スクリプトに適切な権限と所有者があることを確認してください。これはroot:wheelのようになります(wifiはスクリプト名です):
lion:~/Downloads napcae$ ls /usr/local/bin/
-rwxr-xr-x 1 root wheel 739 25 Nov 18:35 wifi
あなたはタイプすることによってこれを達成することができます
lion:~/Downloads napcae$ Sudo chown root:wheel wifi
これで、スクリプトでコマンドをSudoできます。
Sudo networksetup -setnetworkserviceenabled "Huawei Modem" on;
ターミナル/ファインダーはパスワードの要求を停止する必要があります。これがお役に立てば幸いです。
同じ問題が発生しましたが、代わりにサービスを使用してショートカットキーを押してプロキシの状態を切り替えました。
NetworksetupをNewNetConfigにコピーし、/ etc/sudoersを編集したら、Automatorで「ChangeWiFiProxy」という名前の新しいサービスを作成します。シェルスクリプトを追加し、次のスクリプトを追加します。
STATUS=`NewNetConfig -getsocksfirewallproxy Wi-Fi | grep -c 'Enabled: Y'`
if [ "$STATUS" == "0" ] ; then
Sudo NewNetConfig -setsocksfirewallproxystate Wi-Fi on
say on
else
Sudo NewNetConfig -setsocksfirewallproxystate Wi-Fi off
say off
fi
次に、Cmd + Option + ";"のようなショートカットを割り当てます。 「システム環境設定>キーボード>キーボードショートカット>サービス」で。
権限suid
を/usr/sbin/networksetup
に設定すると、networksetupがroot権限で実行されるため、パスワードを入力する必要がなくなります。
Sudo chmod u+s /usr/sbin/networksetup
Suidについて: http://www.linuxnix.com/2011/12/suid-set-suid-linuxunix.html