Estou tentando criar um crontab para um grupo de usuários, vamos chamar o grupo de "testGroup". Existem 3 usuários e quero dar a todos eles acesso ao mesmo crontab. Fiz algumas pesquisas e tentei adicionar cada usuário individual ao grupo crontab no arquivo /etc/group. No entanto, isso não funcionou, pois ainda existem 3 crontabs separados para cada usuário. Isso é possível consertar? Se sim, como eu faria isso?
Obrigado
Responder1
Fundo
Não, cron
não funciona da maneira que você supõe.
O cron
daemon lê seus crontabs em dois lugares:
- No âmbito do sistema
/etc/crontab
; - Crontabs por usuário.
Não há conceito de crontabs por grupo de usuários.
Solução
O Debian foi personalizado, cron
o que permite fazer o que você precisa com relativa facilidade. Para citar a cron(8)
página do manual:
Além disso, no Debian,
cron
lê os arquivos no/etc/cron.d
diretório. O cron trata os arquivos da/etc/cron.d
mesma forma que o/etc/crontab
arquivo (eles seguem o formato especial desse arquivo, ou seja, incluem o campo do usuário). No entanto, eles são independentes de/etc/crontab
: eles não herdam, por exemplo, configurações de variáveis de ambiente dele. Esta mudança é específica para o Debian, veja a nota emESPECÍFICO DO DEBIANabaixo.
Daí 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 faça com que ele pertençaroot:mycrontab
e tenha bits de permissão definidos como0660
ourw-rw-r--
, ou seja, acesso de leitura/gravação para o usuárioroot
e grupomycrontab
e acesso de leitura para todos os outros.Ensine aos seus usuários onde localizar este arquivo e as regras sobre seu formato (que podem ser colocadas no arquivo na forma de comentários).
Observe que talvez você precise descobrir como lidar com o envio de e-mails para todos os seus usuários. Eu verificaria primeiro se não há problema em definir a MAILTO
variável de ambiente obedecida por cron
para uma lista de endereços de e-mail separados por vírgula (como ) ou, na falta disso, você provavelmente precisará configurar um alias de e-mail em seu MTA local ou o MTA que recebe e-mails gerados em seu sistema e use o valor desse alias para a variável.[email protected],[email protected],[email protected]
cron
MAILTO
Resumindo, por favor, dê uma olhada rápida nas páginas de manual cron(8)
e .crontab(5)
…e remova seus usuários do crontab
grupo!
Responder2
Não entendo como a solução @kostix não permite executar código como root.
Você está basicamente dando acesso root ao crontab aos usuários. É muito perigoso.
Pessoalmente, eu criaria uma conta genérica com os mesmos direitos dos usuários e permitiria que os usuários acessassem esse usuário e editassem seu crontab