/etc/cron.daily/にスクリプトを追加することとcrontab(-e)で編集することの違いは何ですか?

/etc/cron.daily/にスクリプトを追加することとcrontab(-e)で編集することの違いは何ですか?

特定の時間にスクリプトを実行するためにcronを使用するなど、さまざまなオプションがありますが、どちらが他のものよりも安全ですか?

私の質問は簡単です。

/etc/cron.daily/でスクリプトを追加することとでスクリプトを編集することの違いは何ですかcrontab(-e)

私の懸念は、他のユーザーがコンテンツを見ることができるということです。/etc/cron.daily/ユーザーのcrontabにあるかどうかにかかわらず、ルート以外に誰もcrontabを見ることができないようにしたいと思います。

/etc/cron.daily/crontabで利用可能なコンテンツを他のユーザーに表示できますかcrontab -l

私は常に特定のサーバーにrootとしてログインします。 cronタスクを実装するときに情報に基づいた選択を行うために、cronが誰/何/いつであるかを知る必要があります。

CentOS 6.6を使用しています。

答え1

デフォルトでは、システム全体のスクリプト/etc/cron*は誰でも読むことができます。たとえば、私のアーチでは:

$ ls -ld /etc/cron*
drwxr-xr-x 2 root root 4096 May 31  2015 /etc/cron.d
drwxr-xr-x 2 root root 4096 May 31  2015 /etc/cron.daily
-rw-r--r-- 1 root root   74 May 31  2015 /etc/cron.deny
drwxr-xr-x 2 root root 4096 May 31  2015 /etc/cron.hourly
drwxr-xr-x 2 root root 4096 May 31  2015 /etc/cron.monthly
drwxr-xr-x 2 root root 4096 May 31  2015 /etc/cron.weekly

そして:

$ ls -l /etc/cron.d/0hourly 
-rw-r--r-- 1 root root 128 May 31  2015 /etc/cron.d/0hourly

デフォルトでは、ユーザー固有のcronファイルがあり、/var/spool/cron少なくとも私のシステムでは読み取ることができません。

$ ls -l /var/spool/cron/
total 8
-rw------- 1 root   root   20 Feb 23 16:34 root
-rw------- 1 terdon terdon 22 Feb 23 16:32 terdon

crontab -eしたがって、「最も安全な」方法は、一般ユーザーが読めないユーザーのcrontabを使用することです。

$ cat /var/spool/cron/root 
cat: /var/spool/cron/root: Permission denied

まず、CentOSでもこの現象が発生しているかどうかを確認してください。しかし、今はCentOSシステムにアクセスできません。

答え2

/etc/cron.daily/すべてのユーザーに対してcronjobを実行できるようにするユーザー(最初のフィールド)があります。 AFAIK それが唯一の違いです。

/etc/cron.daily/バックアップと展開の利点があります。/var/spool/cron/crontabs/(使用されているファイルをcronttab -e上書きする可能性が高いです。

関連情報