首页 > 解决方案 > 如何自动输入 shell 脚本的密码?

问题描述

我正在使用openvpn。要执行 vpn,我在终端中输入以下命令字符串: sudo openvpn /etc/openvpn/ca-mon.prod.surfshark.com_udp.ovpn 然后我需要输入密码。Openvpn 需要 sudo 否则它将无法工作。

我创建了一个 shell 脚本,希望消除输入密码的需要。在寻找解决方案后,我读到包括“NOPASSWD”在内的内容可以解决我的问题。但是,NOPASSWD 无法识别,脚本因 NOPASSWD 错误而停止。

我想也许 NOPASSWD 可能只适用于 BASH,所以我更改了 BASH 的脚本。没有区别,在 NOPASSWD 上仍然出错。

当我继续阅读它应该工作时,我显然做错了什么。

非常感谢任何建议。

我的脚本有效,但在执行后需要我的密码:#!/bin/bash cd /etc/openvpn sudo openvpn /etc/openvpn/us-dtw.prod.surfshark.com_udp.ovpn

标签: bash

解决方案


在您的 /etc/sudoers 文件中,添加

yourusername ALL = (root) NOPASSWD: /"The REAL PATH of your openvpn file"

然后尝试重新运行脚本。


推荐阅读