web-dev-qa-db-ja.com

Debian Linux v8.4で複数のユーザーが同じcrontabにアクセスできるようにするにはどうすればよいですか?

ユーザーのグループ用のcrontabを作成しようとしています。グループを「testGroup」と呼びましょう。 3人のユーザーがいて、すべてのユーザーに同じcrontabへのアクセスを許可したいと思います。私はいくつかの調査を行い、個々のユーザーを/ etc/groupファイルのcrontabグループに追加しようとしました。ただし、ユーザーごとに3つの個別のcrontabがあるため、これは機能しませんでした。これを修正することは可能ですか?もしそうなら、私はこれをどのように行うのでしょうか。

ありがとう

1
Michael

バックグラウンド

いいえ、cronは想定どおりに機能しません。

cronデーモンは、次の2つの場所からcrontabを読み取ります。

  • システム全体_/etc/crontab_;
  • ユーザーごとのcrontab。

ユーザーグループごとのcrontabの概念はありません。

解決

Debianはcronをカスタマイズしました。これにより、必要なことを比較的簡単に行うことができます。 cron(8)のマニュアルページを引用するには:

さらに、Debianでは、cronは_/etc/cron.d_ディレクトリ内のファイルを読み取ります。 cronは、_/etc/cron.d_内のファイルを_/etc/crontab_ファイルと同じように扱います(ファイルの特殊な形式に従います。つまり、ユーザーフィールドが含まれます)。ただし、これらは_/etc/crontab_から独立しています。たとえば、環境変数の設定を継承しません。この変更はDebianに固有のものです。以下のDEBIAN SPECIFICの注を参照してください。

したがって、私は次のことを行います。

  1. ユーザーグループ専用のグループを作成します。それが「mycrontab」だとしましょう。

  2. 3人のユーザーをそのグループに追加します。

  3. _/etc/cron.d_の下にファイルを作成し、それを_root:mycrontab_が所有し、許可ビットが_0660_または_rw-rw-r--_に設定されているようにします。つまり、ユーザーへの読み取り/書き込みアクセス権rootとグループmycrontabを使用して、他のすべてのユーザーへの読み取りアクセス権を取得します。

  4. このファイルの場所とその形式に関する規則についてユーザーに教えます(これらはコメントの形式でファイルに配置できます)。

すべてのユーザーへのメールの送信を処理する方法を理解する必要がある場合があることに注意してください。 MAILTOが従うcron環境変数を最初に電子メールアドレスのコンマ区切りリスト(_[email protected],[email protected],[email protected]_など)に設定してもよいかどうかを確認します。 、おそらく、ローカルMTAまたはシステム上のcronによって生成されたメールを受信するMTAのいずれかにメールエイリアスを設定し、このエイリアスの値をMAILTO変数に使用する必要があります。 。

全体として、cron(8)およびcrontab(5)のマニュアルページを少なくともざっと見てください。

…そして、ユーザーをcrontabグループから削除してください!

1
kostix