rootユーザーのcronで別のユーザーとしてコマンドを実行する
問題
諸事情で、rootユーザーのcronに、別ユーザーとして実行して欲しいコマンドを書きたいのですが、可能でしょうか。
答え
su を使う方式が、一応可能。
* * * * * /bin/su apache -c "/usr/local/bin/php /home/softel/test.php"
su で apache としてコマンド実行。
-c でコマンドを指定。
sudo は、似た機能のコマンドだけど、作者など全然違うらしく、cronなどで使う場合、デフォルトでは端末が必要だというエラーになる。
sudo: sorry, you must have a tty to run sudo
どうしても sudo したい場合は、visudo で
Defaults requiretty
を
#Defaults requiretty
コメントアウトするか、
Defaults requiretty
に
Defaults requiretty Defaults:apache !requiretty
を追記して、特定ユーザーだけエラーにならないようにすると可能。
コメント