質問: "*/15 * * * * php /var/www/html/abcde.com/cron/createDB.php"; fwrite($cron, $line); pclose($cron); ``` としてみましたがCRONファイルを正常に作成する事が出来ませんでした。 user1はLinuxのコマンドで useradd -s /sbin/nologin -M user1 として予め作成しております。 PHPではそもそもユーザ毎のCRONファイルを作成する事は出来ないのでしょうか? ご教授頂ければ幸いです。 宜しくお願い致します。
回答: 他のユーザのcrontabを操作するにはroot権限が必要ですが、そのあたりはどうなっていますか? `-`についてはマニュアルの記述は以下のようになっていましたが実験してみたところなければないで標準入力から読む動作にはなるようでしたので忘れていいです。 ただ、asahina1979さんも書いているとおり、PHPをwebからroot権限で動作させることはとても危険ですからあまりおすすめはできないのは変わりません。 単純に`-user user1`を追加したときに、`-`を落としてしまったからだと思います。この使い方をするときに`-`はインストールする内容を標準入力から読むことを指定するという重要な意味を持ちます。以下crontab(1)より: ``` 書式 crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } ``` ``` このコマンドの 1 つ目の書式は、 新しい crontab を(何らかの名前の付けられた)ファイル、 もしくは標準入力(疑似ファイル名 ``-'' が与えられた場合)から インストールするために使われる。 ```