Qual é a diferença entre adicionar scripts no /etc/cron.daily/ ou editar no seu script em crontab (-e)?

1

Existem várias opções - com o cron - para iniciar seu script em um horário específico, mas é mais seguro do que o outro?

Minha pergunta é simples:

What's the difference between adding scripts in the /etc/cron.daily/ or editing in your script in crontab(-e)?

O que me preocupa é que outros usuários possam ver o conteúdo. Eu quero ter certeza que ninguém além do root possa ver o crontab, seja no /etc/cron.daily/ ou no crontab do usuário.

Outros usuários podem ver o que há em /etc/cron.daily/ ou o crontab, que você pode ver com crontab -l ?

Estou sempre logado como root em um determinado servidor. Eu só preciso saber quem / o que / quando sobre crons, para que eu possa escolher sabiamente quando implementar tarefas agendadas.

Estou usando o CentOS 6.6.

    
por blade19899 23.02.2016 / 15:16

2 respostas

2

Os scripts de todo o sistema em /etc/cron* são legíveis por padrão. Por exemplo, no meu Arch:

$ 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

E:

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

Os arquivos cron específicos do usuário estão em /var/spool/cron por padrão e eles, pelo menos no meu sistema, não são legíveis para o mundo:

$ 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

Assim, a maneira "mais segura" seria usar o crontab do usuário, aquele que você obtém com crontab -e . Usuários normais não podem ler isso:

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

Eu sugiro que você verifique e certifique-se que este também é o caso do seu CentOS, mas eu não tenho acesso a uma máquina do CentOS no momento.

    
por 23.02.2016 / 15:42
0

Em /etc/cron.daily/ você tem o usuário (como primeiro campo), então ele pode executar o cronjob de qualquer usuário. AFAIK é a única diferença.

O /etc/cron.daily/ tem a vantagem de backups e implantação. Os arquivos em /var/spool/cron/crontabs/ (usados por cronttab -e são mais propensos a serem sobrescritos.

    
por 23.02.2016 / 15:37