sudoループを含むスクリプトにパスワードを繰り返し提供するにはどうすればよいですか?

sudoループを含むスクリプトにパスワードを繰り返し提供するにはどうすればよいですか?

以下を含むスクリプトがあります。

while true
  sudo mycmd
  sleep 10000
  [ ... ] ; break
end

bashでスクリプトを実行するときsudo mycmd

「はいまたはいいえ」という質問に対する答えとして、標準入力として繰り返しyes | somecommand提供できることを覚えています。スクリプトにパスワードを繰り返し提供する方法を知りたいです。yessomecommand

ありがとうございます。

ベストアンサー1

パスワードをsudoコマンドにパイプで接続できますが、これはまったく安全ではないため、可能であれば避けてください。

echo 'hunter2' | sudo -S mycmd

より良いアプローチは、スクリプト全体を実行しsudo、パスワードを一度だけ要求することです。

パスワードの使用を完全に避けることも可能ですsudoが、これもセキュリティ上の理由からお勧めできません。これは、コマンドを/etc/sudoers使用してファイルを更新し、visudoグループ内のすべてのユーザーに対してこのような行を含めることによって実行できますwheel

%wheel ALL=(ALL) NOPASSWD: ALL

単一のユーザーに対してのみ無効にするには、%wheelそのユーザーのユーザー名に切り替えます。

おすすめ記事