有沒有一種“好”的方法可以讓使用者在沒有 root 訪問權限的情況下使用 wg-quick?
我已經設置了wireguard,對此我感到非常滿意,但我不禁想知道兩件事:
- 為什麼 wg-quick 只能由 root 使用?
- 我可以在
wg-quick <up/down> <interface>
沒有實際 root 訪問權限的情況下授予其他使用者權限嗎?我猜這與將文件移動/複製/符號連結到根擁有的目錄,並重新載入守護程序或其他東西有關。無論如何,我希望對解決方案進行一些詳細說明和建議
警告:遵循此答案存在安全風險,它為使用者提供無需密碼的完全 root 訪問權限。
使用來自@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
複製路徑輸出並將其放在 wg-quick file(
/opt/homebrew/bin/wg-quick
)的開頭就我而言, wg-quick 的頂部將具有:
#!/opt/homebrew/bin/bash
完成此操作後,使用者可以執行此 wg-quick up/down 並從 automator/sh 腳本執行此作業 :)
使用的資源: https ://osxdaily.com/2014/02/06/add-user-sudoers-file-mac/
wg-quick 需要 root 訪問權限,因為它使用 wg 和 ip 來更改網路介面。
不要將 wg-quick 添加到 sudoers,它會提供不受限制的 root 訪問權限。wg-quick 配置具有以 root 身份執行任意腳本(PreUp、PostUp 等)的掛鉤,“最常用於配置自定義 DNS 選項或防火牆規則。”
wg-quick 確實是一個方便的腳本,正如手冊頁所說:
一般來說,這個實用程序只是一個簡單的腳本,它封裝了對 wg(8) 和 ip(8) 的呼叫,以設置 WireGuard 介面。它是為有簡單需求的使用者設計的,強烈建議有更高級需求的使用者使用更具體的工具、更完整的網路管理器,或者像往常一樣只使用 wg(8) 和 ip(8)。