web-dev-qa-db-ja.com

OS X Mountain Lionでネットワーク構成を変更するたびにパスワードがポップアップしないようにするにはどうすればよいですか?

OS X Lionで使用したネットワークスクリプトがいくつかあり、ssh接続を自動的に作成し、ローカルマシンのネットワーク構成を変更してsshトンネルを介してトラフィックを実行しました。次のシェルコマンドを使用してネットワーク構成を変更しました。

networksetup -setsocksfirewallproxy "Wi-Fi" localhost ####

networksetup -setsocksfirewallproxystate "Wi-Fi" on

現在、Mountain Lionでは、スクリプトを実行するたびに両方のパスワードを要求されますが、これは非常に面倒です。パスワードを記憶させる方法、バイパスする方法、または初めてパスワードを入力して記憶させる方法はありますか?

7
SudoKill

これがセキュリティの観点から正しい方法であるかどうかはわかりませんが、機能します。

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 ####
1
SudoKill

スクリプトに適切な権限と所有者があることを確認してください。これは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;

ターミナル/ファインダーはパスワードの要求を停止する必要があります。これがお役に立てば幸いです。

4
napcae

同じ問題が発生しましたが、代わりにサービスを使用してショートカットキーを押してプロキシの状態を切り替えました。

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 + ";"のようなショートカットを割り当てます。 「システム環境設定>キーボード>キーボードショートカット>サービス」で。

1
Arman

権限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

0
user805627