SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

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

を追記して、特定ユーザーだけエラーにならないようにすると可能。

関連するメモ

コメント