如何在没有 sudo 权限的情况下启动 WireGuard 客户端?

如何在没有 sudo 权限的情况下启动 WireGuard 客户端?

我正在拼命尝试设置一种“无 sudo”方式来启动 WireGuard 隧道。用户在 Debian 12 Bookworm 上没有提升权限。

用户需要一种简单的方法来访问终端服务器xfreerdp。用户通过 VPN 连接到终端服务器时无论如何都必须使用密码,因此wg-quick我认为请求另一个密码是多余的。(用户需要一个密码才能登录 Linux,还需要第二个密码才能登录终端服务器)。

我为用户创建了一个桌面图标,它启动以下命令:

wg-quick up user ; xfreerdp <all-the-stuff-for-logging-in-at-the remote server> ; wg-quick down user

/etc/sudoers这样,当 RDP 会话结束时,VPN 将自动关闭。我在使用 visudo的末尾添加了以下行:

user ALL=NOPASSWD: /usr/bin/wg-quick

桌面启动器什么都不做。如果我在终端中运行命令,它会一直要求输入密码wg-quick

我在这里做错了什么?

答案1

快速回答 :

,您不能没有sudo该用户的权限。

更长的答案(以及不被阻止的解决方案):

您无法避免使用sudo它,因为wg-quick需要 root 权限才能工作。然而,因为您只授权了wg-quick中的一个命令/etc/sudoers,所以使用 不存在安全风险sudo。用户将无法运行除 之外的其他命令wg-quick(没有提升的权限)。

你做的几乎都很好,你只是忘记了一个基本要素:sudo之前的wg-quick命令。下面是应该起作用的命令:

sudo wg-quick up user ; xfreerdp <all-the-stuff-for-logging-in-at-the remote server> ; sudo wg-quick down user

如果没有这个sudo/etc/sudoers规则就不会应用。这是逻辑。在运行允许的命令之前你需要它。

(我刚刚在基于 Debian 的发行版上进行了测试以确认)。

相关内容