我希望我的 VPN 在登录我的用户帐户后在启动时运行。当前运行的是 Ubuntu 15.10。我已将该程序添加到启动项 (/usr/bin/mullvad);但是,它在打开之前要求进行身份验证。
“需要身份验证才能以超级用户身份运行‘usr/bin/mtunnel’”
我已将这些条目添加到我的 sudoers 文件中,但它似乎没有任何作用。我仍然需要输入密码才能运行我的 VPN。
john ALL=(ALL) NOPASSWD: /usr/bin/mtunnel
john ALL=(ALL) NOPASSWD: /usr/bin/mullvad
任何想法?
完整文件
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
john ALL=(ALL) NOPASSWD: /usr/bin/mtunnel, /usr/bin/mullvad
答案1
为什么你如此坚持在登录时连接 VPN?你可能在启动时启动它,然后 VPN 连接就可以作为root
通常启动的一部分来执行。
你可以用无数种不同的方式来做到这一点:你可以在 中添加一行/etc/rc.local
,你可以围绕它构建一个服务(但细节取决于你是否在SysV
或之下systemd
),或者更简单的是,你可以添加以下行
@reboot /usr/bin/mullvad
在crontab
。不再需要密码。
答案2
您仍然需要使用 来执行这些程序sudo
。使用 中的这两行/etc/sudoers
,用户在执行和john
时将不会提示输入密码。此外,您可以将这两行合并为一行:。sudo mtunnel
sudo mullvad
john ALL=(ALL) NOPASSWD: /usr/bin/mtunnel, /usr/bin/mullvad
答案3
我在开发软件的时候也遇到过这个身份验证问题。在我删除软件后,再sudo apt remove
尝试从源代码运行它时,每次Popen
操作都会弹出身份验证请求。
我通过重新安装软件(实时版)解决了这个问题,然后我能够运行开发软件而没有任何身份验证请求窗口。对于你的情况,重新安装软件可能会有帮助。