ユーザーのグループ用に crontab を作成しようとしています。グループを「testGroup」とします。ユーザーは 3 人いて、全員に同じ crontab へのアクセスを許可したいと考えています。調査を行い、/etc/group ファイルの crontab グループに各ユーザーを追加しようとしました。ただし、各ユーザーに 3 つの個別の crontab がまだ存在するため、これは機能しませんでした。これを修正することは可能ですか? 可能であれば、これをどのように実行すればよいですか。
ありがとう
答え1
背景
いいえ、cron
あなたが想定した通りには動作しません。
デーモンcron
は crontab を 2 つの場所から読み取ります。
- システム全体
/etc/crontab
; - ユーザーごとの crontab。
ユーザーグループごとの crontab の概念はありません。
解決
Debian はカスタマイズされておりcron
、必要なことを比較的簡単に実行できます。cron(8)
マニュアル ページを引用すると:
さらに、Debian では、ディレクトリ
cron
内のファイルを読み取ります/etc/cron.d
。cron は、ディレクトリ内のファイルをファイル/etc/cron.d
と同じように扱います/etc/crontab
(そのファイルの特殊な形式に従います。つまり、ユーザー フィールドが含まれます)。ただし、それらは とは独立しています/etc/crontab
。たとえば、環境変数の設定を から継承しません。この変更は Debian に固有のものです。DEBIAN 固有下に。
したがって、私は次のことを行います。
ユーザー グループ専用のグループを作成します。「mycrontab」と仮定します。
3 人のユーザーをそのグループに追加します。
の下にファイルを作成し
/etc/cron.d
、そのファイルを が所有しroot:mycrontab
、権限ビットを0660
またはに設定しますrw-rw-r--
。つまり、ユーザーroot
とグループには読み取り/書き込みアクセス権がmycrontab
、その他すべてのユーザーには読み取りアクセス権が与えられます。このファイルの場所とその形式に関するルールをユーザーに教えます (これらはコメントの形式でファイル内に配置できます)。
すべてのユーザーにメールを送信する方法を考える必要があるかもしれないことに注意してください。 が従うMAILTO
環境変数を、cron
まずカンマで区切られた電子メール アドレスのリスト ( など) に設定しても問題ないか確認します。それができない場合は、ローカル MTA またはシステム上で が生成したメールを受信する MTA のいずれかにメール エイリアスを設定し、このエイリアスの値を変数に使用する必要があります。[email protected],[email protected],[email protected]
cron
MAILTO
全体として、cron(8)
およびcrontab(5)
マニュアル ページを少なくともざっと目を通すようにしてください。
…そして、ユーザーをcrontab
グループから削除してください。
答え2
@kostix のソリューションでは、コードを root として実行できないのはなぜか理解できません。
基本的に、ユーザーにルート crontab アクセス権を与えることになります。これは非常に危険です。
個人的には、ユーザーと同じ権限を持つ汎用アカウントを作成し、ユーザーがそのユーザーにsu - してcrontabを編集できるようにします。