sudo: sorry, you must have a tty to run sudo

sudo を cron などからバッチ処理で使用しようとすると 次のようなエラーが発生することがあります。

sudo: sorry, you must have a tty to run sudo

「端末から実行しないとダメ」と言ってるのですが どうしても cron で実行したい場合は、 sudo の設定ファイル /etc/sudoers の Defaults requiretty パラメータを修正します。

/etc/sudoers は visudo で編集します。

# visudo
【変更前】
Defaults requiretty

【変更前】
Defaults !requiretty

特定のユーザのみ許可したい場合は次のように設定します。

Defaults:hogehoge !requiretty

これで、ユーザ hogehoge は 端末なしで sudo できます。

Google サイト内検索

Amazonアソシエイト