我正在拼命尝试设置一种“无sudoless”方式来启动 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
这样,当 RDP 会话结束时,VPN 将自动关闭。/etc/sudoers
我在使用 visudo的末尾添加了以下行:
user ALL=NOPASSWD: /usr/bin/wg-quick
桌面启动器不执行任何操作。如果我在终端中运行该命令,它会不断要求输入wg-quick
.
我在这里做错了什么?
快速回答 :
不,您不能没有
sudo
用户的权限。更长的答案(以及不被阻止的解决方案):
您无法避免使用
sudo
它,wg-quick
需要 root 权限才能工作。不过,由于您只授权了其中一个命令wg-quick
,因此/etc/sudoers
使用时不存在安全风险sudo
。用户将无法运行除wg-quick
(无提升权限)之外的其他命令。你所做的几乎很好,你只是忘记了一个基本要素:
sudo
之前的wg-quick
命令。这里的命令应该有效:如果没有这个
sudo
,将/etc/sudoers
不会应用该规则。这是逻辑。在运行允许的命令之前您需要它。(我刚刚在基于 Debian 的发行版上进行了测试以确认)。