bash - 如何自动输入 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
解决方案
在您的 /etc/sudoers 文件中,添加
yourusername ALL = (root) NOPASSWD: /"The REAL PATH of your openvpn file"
然后尝试重新运行脚本。
推荐阅读
- angular - ngfor 用于具有 ng2-charts 的对象中的数组
- python - 如何仅保留数据框列的字符串中的数字?
- python - Python:每次运行函数时如何增加代码计数
- ios - 如何使多个协议符合一个类并设计方法来输入和打印详细信息?
- java - 如何在 GraphQL 中使用参数列表创建查询?
- javascript - 如何让机器人回复表情符号?
- html - 按索引删除不起作用。角
- if-statement - If语句具有多个agruments来捕获鼠标位置
- mysql - sql-query 获取包含事务计数的报告
- django - django 使用自定义公司字段创建个人资料