Antecedentes
Não, cron
não funciona da maneira que você supõe.
O daemon cron
lê seus crontabs de dois lugares:
- Todo o sistema
/etc/crontab
; - Crontabs por usuário.
Não há conceito de crontabs por grupo de usuários.
Solução
O Debian personalizou cron
, o que permite fazer o que você precisa com relativa facilidade. Para citar a página de manual cron(8)
:
Additionally, in Debian,
cron
reads the files in the/etc/cron.d
directory. cron treats the files in/etc/cron.d
as in the same way as the/etc/crontab
file (they follow the special format of that file, i.e. they include the user field). However, they are independent of/etc/crontab
: they do not, for example, inherit environment variable settings from it. This change is specific to Debian see the note under DEBIAN SPECIFIC below.
Por isso eu faria o seguinte:
-
Crie um grupo dedicado para o seu grupo de usuários. Vamos supor que seja "mycrontab".
-
Adicione seus três usuários a esse grupo.
-
Crie um arquivo em
/etc/cron.d
e torne-o de propriedade deroot:mycrontab
e tem bits de permissão definidos como0660
ourw-rw-r--
, ou seja, acesso de leitura / gravação ao usuárioroot
e grupomycrontab
e acesso de leitura a todos os outros. -
Ensine a seus usuários sobre onde localizar esse arquivo e as regras sobre seu formato (eles podem ser colocados no arquivo na forma de comentários).
Observe que você pode precisar descobrir como lidar com o envio de e-mails para todos os usuários. Eu verificaria se não há problema em definir a variável de ambiente MAILTO
obedecida por cron
para uma lista separada por vírgula de endereços de e-mail primeiro (como [email protected],[email protected],[email protected]
) ou, se isso não for possível, você precisará definir um alias de email no MTA local ou no MTA que recebe emails gerados por cron
em seu sistema e use o valor desse alias para a variável MAILTO
.
Em resumo, por favor, dê as páginas de manual cron(8)
e crontab(5)
, pelo menos, um olhar superficial.
… e remova seus usuários do grupo crontab
!