1

CentOS 6 ボックスで特定のユーザー アカウントとして Python スクリプトを実行すると、小さな問題が発生します。

私の cron.d/cronfile は次のようになります。

5 17 * * * reports /usr/local/bin/report.py > /var/log/report.log 2>&1

アカウントreportsは存在し、そのスクリプトによってアクセスされるすべてのファイルはchownedおよびchgrpedですreports。Pythonスクリプトはchmod a+r. Python スクリプトは#!/usr/bin/env python.

しかし、これは問題ではありません。問題は、ログファイルに何も表示されないことです。Python スクリプトが実行を開始しません。なぜこれが考えられるのでしょうか?

cronfile のroot代わりにユーザーを変更すると、正常に動作します。reportsただしroot、本番サーバーのように実行することはできません。

ご不明な点がございましたら、お問い合わせください:)

/e: 実行すると正常にsudo -u reports python report.py動作します。

4

1 に答える 1

0

cron ジョブは、cron ジョブが設定されたユーザーの権限で実行されます。IE ユーザーの cron テーブルにあるものは何でも、reportsユーザーとして実行されreportsます。

sudoとしてログインしたときにスクリプトを実行する必要がある場合、reportsスクリプトは cron ジョブとしても実行されない可能性があります。reportsなしでログインしたときにこのスクリプトを実行できますsudoか? そうでない場合、cron ジョブも実行できません。わかる?

ログを確認してください - アクセス許可エラーが発生していますか?

スクリプトが特定の特権を必要とする理由は無数にありますが、これを修正する簡単な方法はrootreports. 長い道のりは、権限の昇格が必要なものを正確に確認し、それを修正することです。ファイルのパーミッションですか?保護されたコマンド?たぶん、特定のグループに追加すると、の代わりにreports実行できるようになります。reportsroot

* root として cron ジョブをセットアップする場合は、非常に注意してください

于 2013-08-08T17:03:22.107 に答える