Q1
Why does the original rw-rw-r-- permission of my job file not work
De man cron :
/etc/crontab and the files in /etc/cron.d must be owned by root, and must not be group- or other-writable.
Assim, os arquivos dentro de /etc/cron.d devem ser:
chown root:root /etc/cron.d/*
chmod go-wx /etc/cron.d/*
chmod -x /etc/cron.d/*
Q2
Why does /etc/crontab not need to explicitly read the files under /etc/cron.d/?
Não, não é isso que diz. O que man 5 crontab diz é:
/etc/crontab: system-wide crontab Unlike any other crontab you don't have to run the 'crontab' command to install the new version when you edit this file and files in /etc/cron.d. These files also have username fields, that none of the other crontabs do.
O que isso significa é que não há necessidade de executar crontab -e para editar e instalar um novo trabalho agendado. Que os arquivos em /etc/cron.d/ são lidos e interpretados por cron assim que são editados. E os trabalhos definidos dentro são executados como planejados sem chamar o executável crontab .
Aviso
Mas você também deve ler a partir de man cron :
In general, the system administrator should not use /etc/cron.d/, but use the standard system crontab /etc/crontab.
Isso significa executar um crontab -e para criar trabalhos agendados.
A edição de /etc/crontab (ou /etc/cron.d files) diretamente é uma má ideia em geral e para novos usuários especialmente. Acostume-se a gerenciar tarefas agendadas com crontab -e e crontab -l e, depois de um tempo (longo), você poderá tentar entender o que o /etc/crontab faz.
editar
Desde que você está perguntando:
Can crontab -e create cron jobs in /etc/cron.d/?
Não, não foi isso que eu quis dizer. Tarefas Cron (para usuários) vivem em /var/spool/cron/crontabs (em distros do tipo debian). É aí que o comando crontab -e as edita.
O que geralmente é editado (antes) em /etc/crontab é o system jobs, os jobs que os pacotes instalados (como o anacron) usam para agendar seus próprios jobs. Isso não é um arquivo que os usuários devem editar. No debian, existe um diretório para adicionar novos trabalhos que evita o problema de cometer erros no arquivo editado ( /etc/crontab ). Esse diretório é /etc/cron.d/ . Mas ainda assim, isso não é um diretório destinado a usuários (até mesmo o administrador) para editar manualmente.
Isso é semelhante a perguntar por que um usuário não deve editar o arquivo /etc/sudoers .
É claro que um usuário (como root) pode executar nano /etc/sudoers e alterar o arquivo. O sistema não irá bloquear a raiz. Mas isso é uma "má ideia".
O manual do crontab é enganador no sentido de que foi escrito para falar com desenvolvedores (não usuários). Explica o que um desenvolvedor deve fazer nesses arquivos.
Por que
Sobre: por que você acha que precisa adicionar /etc/crontab (ou /etc/cron.d )?
Os arquivos nesses dois locais contêm "linhas", cada linha é um trabalho.
Exatamente o mesmo é uma linha que é editada com crontab -e . Cada linha é um trabalho a ser executado pelo cron. A única diferença é que nesses dois locais, a linha de trabalho contém um campo adicional para "usuário". Mas:
crontab -u user1 -e
Também adicionará novas linhas (jobs) (se o usuário que executa o comando tiver os privilégios certos) que serão executados como "user1". A única diferença (prática) é que um usuário pode editar esses trabalhos, mas não os que estão dentro de /etc/crontab ou /etc/cron.d/ . Essa parece ser uma boa ideia para o IMO evitar que os usuários editem trabalhos de outros usuários.
Em resumo: para adicionar trabalhos: use crontab -e .