rootとしてcrontabジョブを実行することはセキュリティリスクですか?


8

私が実行しているいくつかのcronジョブがあります-主にバックアップ関連のものです。

rootアクセスを必要とする/ etc / apache2 / sites / availableなどのようにスタックしたバックアップをとる必要があります。

いくつか質問があります。

ヘッドレスサーバーで実行する場合:

  1. スクリプトはどのユーザーで実行されますか(cronジョブエントリでユーザーを指定しない場合)。
  2. rootでバックアップスクリプトを実行しても大丈夫ですか、それともセキュリティ上の質問ですか?

ところで、私のサーバーはUbuntu 10.0.4 LTSを実行しています

回答:


15

スクリプトへのアクセスを十分に保護し、適切な予防策を講じている場合、通常、rootのcrontabから何かを実行してもセキュリティ上のリスクはありません。

ただし、root以外のユーザーが編集または上書きできるrootとしてスクリプトを実行しないでください。これは、cronから実行されるジョブとインタラクティブに実行されるジョブに適用されます。

そのスクリプトに他のファイルが含まれている場合、同じことがそれらにも適用されます。

疑わしい場合は、常に最小特権の原則を使用してください。それでもわからない場合は、フォーラムやIRCでいつでも特定の質問をすることができます。


(ほぼ)root以外のユーザーとして何かを実行する方法は常にあります。他のすべてがsudoを使用してユーザーを特定のコマンドに制限することに失敗した場合、害を及ぼす可能性も制限されます。

/ etc / apache2 / sites-availableをバックアップした例では、そのファイルはデフォルトでだれでも読み取り可能であり、ルートのみが書き込み可能な宛先へのアクセスであることを意味します。

あなたはそれを修正することができます

  • (たとえば)backupadminsというグループを作成します
  • 宛先ディレクトリのグループをbackupadminsに設定します
  • backupuserというユーザーを追加します(例)
  • ユーザーbackupuserをグループbackupadminsに追加します。
  • backupadminsグループがディレクトリを書き込み可能にする
  • backupuserのcrontabからcronジョブを実行します。

便利なステップバイステップの説明の+1。あなたの答えは非常に役に立ちました。とにかくこの道を行くつもりだったのですが、初めてだったので、ここでおすすめされているのを見て安心です(かなりの人が賛成しているようです)。
user35402 2010

ところで、私が提案したとおりにユーザーグループとユーザーを作成した場合、/ etc / apache / sites-availableと、(かなり正しく)ルートアクセスのみに制限されている他のフォルダーにアクセスできますか?どうすればその問題を回避できますか?
user35402 2010

3

それはスクリプトが何をしているかに依存します。彼らが何かをバックアップしているなら、それはおそらくrootであっても問題ありません-悪意のあるユーザーがこれらのスクリプトを上書きした場合、とにかく大きな問題が発生するでしょう。

ディレクトリで見つかったファイルを実行したり、Webディレクトリのコンテンツによって影響を受ける可能性のあるものを実行するなど、愚かなことをする場合は、おそらく代替策を検討する必要があります。


2

世界中の何百万ものcronジョブが、毎日root(または実行するように設定されている期間)としてrootとして実行されています。

重要なことは、適切な権限が設定されていることです。誰もが書き込み可能な何かを実行している場合、悪意のあるユーザーまたはプロセスがその動作を変更する可能性があります。

cronジョブは、通常、crontabの所有者が実行します。/var/spool/cron/crontabs/usernameたとえば、ユーザーcrontabが存在する場合があります。/etc/crontab/etc/cron.d/または/etc/cron.hourly(毎日、毎週、毎月)にあるCronjobはrootによって実行されます。これらのcrontabファイルについても、所有権と権限が正しいことが重要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.