
私は/etc/cron.d/myjob
bashスクリプトを実行し、そのstdoutとstderrをログファイルにリダイレクトするcronジョブを作成しました。スクリプトには、sudo
実行するコマンド1行が含まれています。
ログファイルから:
sudo: no tty present and no askpass program specified
これは私が知っておくべきいくつかの問題を引き起こす可能性がありますか?
/etc/cron.d/
ファイルのcronジョブを含めないでくださいsudo
。
ありがとうございます。
答え1
「もし」は判断です。
呼び出されたコマンドは、/etc/cron.d/
指定されたユーザー(ユーザーroot
または他のユーザーであるかどうか、cron行で定義されている)で実行されます。したがって、一般的な状況では必要ありませんsudo
。
しかし、もしあなたがする呼び出されるスクリプトがあるため、正しく入力したことを確認sudo
する必要があります。sudoers
特に:
- エントリがスクリプトを実行しているユーザーに割り当てられていることを確認してください(おそらく
root
)。 NOPASSWD
誰もがパスワードを入力せずに実行できるように、エントリにプロパティが設定されていることを確認してください。
表示されるエラーは、sudo
コマンドにパスワードが必要ですが、パスワードを提供する端末がないためです。
よく書かれたスクリプトは正しい権限で実行されているかどうかを検出し、まったく呼び出すことはありませsudo
んが、そこには間違ったスクリプトがたくさんあります:-)