2011-08-16 9 views
4

Webページからさまざまなジョブの実行予定時刻を更新できる必要があります。Red Hat Enterprise Linuxシステムで安全な方法を探しています。明らかにcrontabファイルを直接編集することはno-noであり、とにかくそのアプリケーションディレクトリへのPHPアクセスを制限します。私が思いつくことができる最善の方法は、アプリケーションディレクトリ(Webルートの1つ下のレベル)に更新されたファイルを作成し、次にファイルを検証してcron.dディレクトリに移動するスクリプトを実行することです。これは安全ですか、それを行うには良い方法がありますか? crontabコマンドの使用についてLAMP Webページからcronを安全に更新する方法

おかげ

マーク

答えて

0

どのように?追加したいcronエントリを持つnewcronjobs.txtというファイルを/ tmpに作成することができます。そして電話crontab /tmp/newcronjobs.txtこれは新しい仕事のすべてを加えるはずです。私はこれがかなり安全だと思うが、単なる考えだ。

+0

これは良い点です。ジョブはApacheユーザーとして実行されますが、それは私たちにとってはうまくいくでしょう。 1つの問題は、同じサーバー上で複数のWeb環境を実行していることです。そのため、crontabを単独で実行するとすべてが上書きされます。しかし、私は複数のファイルを照合するスクリプトを書くことができなければなりません。 – Mark

+0

これに伴う大きな問題の1つは、ファイルがApacheによって書き込み可能である必要があります。つまり、Webアカウントを持つすべてのユーザーがサーバー全体を侵害する可能性があります。そして、あなたがそれをrootだけが書き込み可能にするならば、rootのパスワードをWebスクリプトにハードコードすることに悩まされます。これはもちろん愚かな考えです。 – Mike

1

あなたの最善の策は、crontabをエミュレートする基本的なスクリプトであるさまざまなcrontabパッケージを見つけることです。あなたがCPanelやPleskのようなものをインストールする能力を持っていない限り。

0

私にとっては、これは大きなセキュリティホールのように思えますが、私は間違いなく直接または間接的にcrontabに書き込むことをお勧めします。上で言及した「バリデータ」を保護するという小さな部分を何とか見過ごしても、悪意のあるユーザーが簡単にサーバー全体を侵害する可能性があります。

ジムの解決方法に従い、可能であれば何らかのフレームワークを使用してください。うまくいけばオープンソースで、複数の開発者が積極的に開発しています。

追加するすべてのプロセスが似ている場合は、最低限の共通分母の分ごとに特定のスクリプトを非特権ユーザーとして実行するcronジョブを作成し、この1つのファイルに他のプロセスを実行し、可能な限りハードコードを作成し、できるだけユーザー入力に頼らずにすべてのユーザーが入力するをエスケープしていることを確認してください。

関連する問題