如何将密码传递给 sudo 命令?

如何将密码传递给 sudo 命令?

在 OSX 上我会

sudo route delete default
sudo route add default 192.168.178.1

更改我的默认网关。

在使用这些 sh ​​文件运行我每次都会被要求输入密码。我运行的是

sh changegw.sh

我如何提前输入我的密码?

答案1

对于 sudo,有一个 -S 选项用于从标准输入接受密码。以下是 man 条目:

-S          The -S (stdin) option causes sudo to read the password from
            the standard input instead of the terminal device.

这将允许您运行如下命令:

echo myPassword | sudo -S ls /tmp

答案2

虽然最简单的方法是以 root 身份运行脚本,但您也可以在 sudoers 文件中创建一个无需密码即可运行该程序的组,并将您的用户名添加到该组。

不过,我个人从来没有这样做过,并且不建议将特定的行添加到您的 sudoers 文件。

相关内容