オプション1:理由を調べて正しいことをしてください。

オプション1:理由を調べて正しいことをしてください。

Wireguardを設定して非常に満足していますが、次の2つが不思議ではありません。

  1. なぜwg-quickはルートでのみ使用できますか?
  2. wg-quick <up/down> <interface>実際のルートアクセスなしで他のユーザーに操作を実行する権限を付与できますか?

これは、ファイルをルート所有ディレクトリに移動/コピー/シンボリックリンクし、デーモンなどを再ロードすることに関連していると思います。とにかく、解決策のより詳細な説明と提案を聞きたいです。

答え1

wg-quick は wg と ip を使用してネットワークインタフェースを変更するため、root アクセスが必要です。

sudoersにwg-quickを追加しないでください。これにより、無制限のルートアクセスが提供されます。 wg-quick設定には、任意のスクリプト(PreUp、PostUpなど)をrootとして実行するためのフックがあり、「カスタムDNSオプションまたはファイアウォールルールを設定するために最も一般的に使用されます」

wg-quickは、マンページに次のように実際に便利なスクリプトです。

通常、このユーティリティはWireGuardインターフェイスを設定するためにwg(8)とip(8)への呼び出しをラップする単純なスクリプトです。これは単純な要件を持つユーザー向けに設計されており、高度な要件を持つユーザーはより具体的なツール、より完全なネットワーク管理者、または通常どおりwg(8)とip(8)を使用することをお勧めします。

答え2

警告:ユーザーにパスワードなしでフルルートアクセスを提供するこの回答によれば、セキュリティ上のリスクがあります。

@ctrl-alt-delorの答えのヒントを使って動作するソリューションを策定しました。私のシナリオでは、jenkinsというsudo以外のユーザーがwg-quick <up / down>を作成者として実行できるようにしたいと思います。

ランニング: sudo visudo

root            ALL = (ALL) ALL
%admin          ALL = (ALL) ALL

下に数行を追加-------

jenkins ALL = (ALL) NOPASSWD: /opt/homebrew/bin/bash
jenkins ALL = (ALL) NOPASSWD: /usr/sbin/networksetup
jenkins ALL = (ALL) NOPASSWD: /sbin/ifconfig
jenkins ALL = (ALL) NOPASSWD: /opt/homebrew/bin/wg
jenkins ALL = (ALL) NOPASSWD: /opt/homebrew/bin/wg-quick

実行したい最終コマンドを実行する前に、前提条件をリストすることが重要です。それ以外の場合は動作しません!これが誰かに役立つことを願っています!

その後、一般ユーザー jenkins はこのコマンドを実行できます。直面するなら

encountered an error: "wg-quick: Version mismatch: bash 3 detected, when bash 4+ required"

その後、単に実行してください。

which bash

/opt/homebrew/bin/wg-quickパス出力をコピーしてwg-quick file()の先頭に配置します。

私の場合、wg-quickの上部には次のものがあります。#!/opt/homebrew/bin/bash

これを実行した後、ユーザーはこのwg-quick up / downを実行し、Automator / shスクリプトでこれを実行できます。 :)

使用されたリソース: https://osxdaily.com/2014/02/06/add-user-sudoers-file-mac/

答え3

はい。しかし、そうではありません(他の答えを参照)。

警告:このコマンドではこれを実行しないでください。

オプション1:理由を調べて正しいことをしてください。

オプション2:sudo

実行しsudoてパスワードを入力してください。私はすでにこれをやっていると思います。

sudoオプション3:このコマンドのパスワードを構成しません。

このコマンドは安全ではありません。

/etc/sudoers実行できるようにファイルを編集してください。このコマンドパスワードがあるものとsudoパスワードがないこと。 (注意してください。visudoを使用してファイルを確認してください。)

うまくいけば、ラッパースクリプトを書いて簡単に実行できます。

答え4

私のラップトップでは、suidビットwg-quickwg実行可能ファイルを適用してこの問題を簡単に解決しました。

which wg: /usr/bin/wg
which wg-quick: /usr/bin/wg-quick

sudo chmod u+s /usr/bin/wg-quick
sudo chmod u+s /usr/bin/wg

関連情報