以下を含むスクリプトがあります。
while true
sudo mycmd
sleep 10000
[ ... ] ; break
end
bashでスクリプトを実行するときsudo mycmd
。
「はいまたはいいえ」という質問に対する答えとして、標準入力として繰り返しyes | somecommand
提供できることを覚えています。スクリプトにパスワードを繰り返し提供する方法を知りたいです。yes
somecommand
ありがとうございます。
ベストアンサー1
パスワードをsudo
コマンドにパイプで接続できますが、これはまったく安全ではないため、可能であれば避けてください。
echo 'hunter2' | sudo -S mycmd
より良いアプローチは、スクリプト全体を実行しsudo
、パスワードを一度だけ要求することです。
パスワードの使用を完全に避けることも可能ですsudo
が、これもセキュリティ上の理由からお勧めできません。これは、コマンドを/etc/sudoers
使用してファイルを更新し、visudo
グループ内のすべてのユーザーに対してこのような行を含めることによって実行できますwheel
。
%wheel ALL=(ALL) NOPASSWD: ALL
単一のユーザーに対してのみ無効にするには、%wheel
そのユーザーのユーザー名に切り替えます。