特定の時間にスクリプトを実行するために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
上書きする可能性が高いです。