如何向包含 sudo 循环的脚本重复提供我的密码?

Tim*_*Tim 1 scripting sudo shell-script

我有一个脚本,其中包含

while true
  sudo mycmd
  sleep 10000
  [ ... ] ; break
end
Run Code Online (Sandbox Code Playgroud)

当我在 bash 中运行脚本时,我必须在运行完sudo mycmd.

我记得yes | somecommand可以重复提供yes作为标准输入到somecommand,作为“是或否”重复问题的答案。我想知道如何向脚本重复提供我的密码?

谢谢。

ewa*_*att 5

密码可以通过管道传输到sudo命令中,但这在任何方面都不安全,应该尽可能避免。

echo 'hunter2' | sudo -S mycmd
Run Code Online (Sandbox Code Playgroud)

更好的方法是运行整个脚本sudo并且只需要一次密码。

sudo密码也可以完全避免,但也不推荐出于安全原因。这可以通过/etc/sudoers使用visudo命令更新文件并为wheel组中的所有用户包含这样的一行来完成。

%wheel ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

仅对%wheel具有用户用户名的单个用户开关禁用它。