有人可以告诉我如何在没有密码提示的情况下运行它:
systemctl restart [email protected]`
在我的 sudoers 文件中,我有:
<myadminuser> ALL=NOPASSWD: /usr/bin/systemctl [email protected] restart,/etc/init.d/openvpn
在 ~/.bashrc 中我有:
alias or="systemctl restart [email protected]"
我尝试过的解决方案:
如果我在别名中添加“sudo”,则终端内会请求输入密码。如果我不在别名中添加 sudo,则会弹出框,要求输入密码。因此,我在这里发布了这个问题。
答案1
在您的sudoers
文件中,您有一个不正确的条目,因此它永远不会匹配。应该是这样的(注意restart
动作与原来的位置相比),
<myadminuser> ALL=NOPASSWD: /usr/bin/systemctl restart [email protected],/etc/init.d/openvpn
然后在您的别名中您需要使用sudo
,
alias or="sudo systemctl restart [email protected]"
作为一个相关的想法,您可以通过使用 OpenVPN keep-alive 选项来避免执行任何此操作,您可以将其添加到客户端配置中
keepalive 10 60
这告诉 OpenVPN 客户端每 10 秒发送一条“hello”消息(尽管这些值有通常的描述,但它不是 ICMP ping
),如果在 60 秒内没有收到回复,则重新启动连接。如果有必要,您可以尝试将其缩短为 40 秒超时,但我不会低于这个值。