用户终端中的脚本运行,Scientific Linux 7.1 中用户 crontab 中的权限失败

用户终端中的脚本运行,Scientific Linux 7.1 中用户 crontab 中的权限失败

我有一个脚本可以检查我的 VPN 连接是否正常,如果没有,它会重新启动它。这在终端中可以正常工作,但命令

nmcli con up uuid 7c514892-6a6a-4d33-946b-84aeb37615bb

当 cron 尝试运行它时似乎会出现错误,具体来说:错误:连接激活失败:无权控制网络。

这是我的用户 crontab,所以看起来应该可以工作?我应该如何调试它?


更一般地讲,我想做什么?我希望我的 VPN 在停止时自动重新连接。当 ifconfig 显示没有 tun0 连接时,GUI 小程序会错误地显示锁定图标。在 Scientific Linux 6 上,这很容易,我可以编辑 /etc/crontab 并运行执行检查的脚本,然后如果是,则重新启动服务 openvpn,假设我的 openvpn.conf 包含指向 pass.txt 的指针。

但是,这些在 SL7 中都不起作用。OpenVPN 似乎不再读取 /etc/openvpn/*.conf,命令行上的 service openvpn restart 失败。在 SL7 中,我唯一可以与之交互的方式是通过 nmcli。此外,我必须以我的用户身份执行此操作,否则它没有任何 VPN 密钥,即使我已将它们添加到文件中并更改了 password-flags=0。命令行 --password-file 的文件格式显然与简单的 openvpn 密码文件非常不同,因此也不起作用。

因此,我以我的用户身份工作。我对此很满意,事实上,我认为我更喜欢这样,而不是由 root 完成,如果我想更改 VPN 设置,我可以从 GUI 进行更改...

也许我在这里忽略了一些显而易见的东西,而且我的黑客行为很愚蠢——因此有了背景。如果有办法让 vpn 在关闭时自动重新连接,我就不需要解决权限问题了……

相关内容