2016-10-27 4 views
0

現在、私はプロジェクトに取り組んでいます。私はスケジューリングのためにdjango-kronosを使用しています。ユーザがタスクをスケジュールするときにスクリプトを実行しています。 runすべての特権を持つPythonでコマンドを実行する方法

python manage.py installtasks

これはcrontabにタスクを挿入するのに役立ちます。私はターミナルで実行が、私は私のDjangoのアプリでそれを統合するとき、それは私が知っていることは本当に好奇心、この問題を引き起こすかについての誤りに

IOError: Read crontab nobody: You (nobody) are not allowed to use this program (/usr/bin/crontab)

を投げていたときに

スクリプトが正常に動作していますか?

か何かお見逃しですか?

+1

エラーメッセージは非常に明白です。スクリプトは、crontabコマンドを使用する権限を持たないuser * nobody *によって実行されます。適切な権限を持つユーザーがスクリプトを実行するようにする必要があります。しかし、私はdjango-kronosを知らないので、これを行う方法を教えてもらえません。 – Tryph

+0

実行するスクリプトを 'chmod'または' chown'します。 – FeedTheWeb

+0

ええ私はchmodとchownのことをやった..でも私はスクリプトにすべての権限(755)を与え、同じエラーをスローします。しかし、私は手動でスクリプトを実行すると完全に実行されています。どこが混乱しているのか分かりません:( – user458766

答えて

0

スクリプト上でsetuidフラグを設定すると(chmod u+s)、別のプロセスとして実行される場合、スクリプトファイルの所有者UIDとしてスクリプトが実行されます。誰が他の誰かと同じように実行しているユーザーの認証やチェックを実行することが許可されているかどうかを監視する必要があります。

これはかなり回避策であり、アプリで利用できる優れた機能がある場合はお勧めできません。

From what I can seedjango-kronosロジックは、適切なWebコードではなくmanage.pyから実行されるはずです。

関連する問題