25

Macでプロキシを変更するために使用する小さなアプリがあります。コマンドを使用しnetworksetupてプロキシ設定を設定しますが、これはLionで正常に機能しました。ただし、Mountain Lionでは、プロキシ設定を変更するたびに管理者パスワードを要求されます。

networksetupは、システムネットワーク構成を変更しようとしています。これを許可するには、パスワードを入力してください。

これを防ぐ方法はありますか?または、Cocoaのプロキシ設定を変更するためのより良い方法はありますか?Lionでは、パスワードを入力したときにシステムが記憶していたため、再起動後にのみ認証する必要がありました。

また、Chromeでは、ProxySwitchyプラグインが同じ動作をすることに気づきました。それは言う

scutilは、システムネットワーク構成を変更しようとしています。これを許可するには、パスワードを入力してください。

4

3 に答える 3

13

このコマンドを実行できるようにするユーザーにパスワードなしのルールを追加することで、sudo を使用してこれを実現します。

  • visudo を実行してエディターを起動し、/etc/sudoers ファイルを変更します。

    visudo -f /etc/sudoers
    
  • ファイルの最後に、次の行を追加します

    $USERNAME ALL=(root) NOPASSWD: /usr/sbin/networksetup
    

$USERNAME の場所には、networksetup コマンドにパスワードなしのアクセスを提供する実際のユーザー名を入力します。

  • ファイルを保存する
  • 実行して、ユーザーとしてテストします

    /usr/bin/sudo /usr/sbin/networksetup -version
    

正しく設定されている場合はバージョン メッセージが表示され、間違っている場合はパスワードの入力が求められます。

root としてコマンドを実行できるユーザーを特定のユーザーに制限するため、これはより安全なルートです。networksetup バイナリ自体を suid root に設定すると、システムにログインするすべてのユーザーがネットワーク構成を変更できるようになります。OSX はマルチユーザー オペレーティング システムであり、OSX と同じように扱う必要があります。

あなたが本当に妄想的であれば、 /usr/bin/sudo を呼び出すときもフルパスを使用するようにしてください。

于 2013-11-21T01:27:44.793 に答える
7

suidパーミッションを設定する/usr/sbin/networksetupと、root パーミッションで networksetup が実行されるため、パスワードを入力する必要がなくなります。

sudo chmod u+s /usr/sbin/networksetup

suid について: http://www.linuxnix.com/2011/12/suid-set-suid-linuxunix.html

于 2013-01-29T13:03:22.600 に答える
0

私もこれを理解しようとしてきました。マニュアルページでこれについて言及していることに気付きました:

パスワードを受け取るフラグは、パスワードの代わりに "-" を受け入れ、stdin からパスワードを読み取る必要があることを示します。

使用方法はよくわかりませんが、可能だと思われます...

于 2012-11-04T14:51:44.780 に答える