user1
、user2
のcronタブにジョブのリストがあります。 user2
のジョブが実行されないようにしたい。
user2
をcron.deny
にリストしようとしましたが、それは彼がcrontab
にアクセスできないようにするだけです。 user2
のcrontab
にリストされているジョブは引き続き実行されます。
特定のユーザーのcronジョブを無効にするにはどうすればよいですか?
強引な!
crontab -u fred -e
%s/^/#/
:wq
おそらくもっとエレガントな方法がありますが、これを常に行っているのでない限り、持っているハンマーを使用してください。
特定のユーザーのcrontabを無効にする最も簡単な方法は、そのユーザーを見つけて名前を変更することですcrontab。 cronのDebianマニュアルページには次のように書かれています。
cron searches its spool area (/var/spool/cron/crontabs) for crontab
files (which are named after accounts in /etc/passwd); crontabs found
are loaded into memory.
したがって、通常はdisabled
、offline
、dead
などのサフィックスを付けて、ファイルの名前をpasswdにない名前に変更します。
mv -vi /var/spool/cron/crontabs/user2 /var/spool/cron/crontabs/user2.disabled
Debian(およびUbuntuなどの関連システム)では、これにより/var/log/syslog
に次のエントリが生成されます。
(user2.disabled) Orphan (no passwd entry)
必ずuser2
をファイル/etc/cron.deny
に追加してください。そうしないと、ユーザーは自分で新しいcrontabを作成できます。
/etc/cron.deny
からエントリを削除し、ユーザーのcrontabの名前を変更して、ユーザーのcrontabを再度有効にします。
mv -vi /var/spool/cron/crontabs/user2.disabled /var/spool/cron/crontabs/user2
/var/spool/cron/user1
またはuser2
を削除しますか?また、これらのユーザー名を/etc/cron.deny
に追加する必要があります。そうしないと、これらのcronジョブを追加し直すことができます。
crontab -r username
はSolarisで動作し、特定のユーザー名のcrontabを削除します。
-r
が機能しない場合は、次のことを試してください。
su username 'sh -c "crontab /dev/null"'
crontab -e
よりも入力が速く、スクリプトが簡単です。
特定のユーザーのcrontabジョブをブロックする場合は、rootユーザーでログインしていることを確認してください。rootユーザーはcrontabファイルにのみアクセスできます。 1.次に、このディレクトリのdir /etc/cron.dに移動し、そのcron.denyファイルを確認し、viエディタなどを使用してブロックする特定のユーザー名を入力します。