cronの中でsudo を使う方法
訳あって、root で動くcron の中で sudo を含むスクリプトを動かしたのですが
sudo: sorry, you must have a tty to run sudo
というエラーが出て動きませんでした(OSは Centos5)。
しかし検索してみると解決策が見つかりました。
その1 (セキュリティー上、望ましくない)
/etc/sudoers の 以下の行をコメントアウトする
Defaults requiretty
検索すると、こう書かれた記事がみつかります。
しかし、なぜデフォルトでtty(コンソール)と繋がってないsudoを実行出来ないようにしているのはクラッキング目的で進入したソフト等からsudoされないようにする為です。
なので無闇にこれを無効にしてしまうのは望ましくありません。
その2
Defaults の指定は以下のように特定のユーザーのみttyに繋がってなくともsudoを許可できるので、こちらの方が良いと思います。
Defaults:root !requiretty