Como permitir que vários usuários acessem o mesmo crontab no Debian Linux v8.4?

Como permitir que vários usuários acessem o mesmo crontab no Debian Linux v8.4?

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, cronnão funciona da maneira que você supõe.

O crondaemon 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, crono que permite fazer o que você precisa com relativa facilidade. Para citar a cron(8)página do manual:

Além disso, no Debian, cronlê os arquivos no /etc/cron.d diretório. O cron trata os arquivos da /etc/cron.dmesma forma que o /etc/crontabarquivo (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:

  1. Crie um grupo dedicado para o seu grupo de usuários. Vamos supor que seja "mycrontab".

  2. Adicione seus três usuários a esse grupo.

  3. Crie um arquivo em /etc/cron.de faça com que ele pertença root:mycrontab e tenha bits de permissão definidos como 0660ou rw-rw-r--, ou seja, acesso de leitura/gravação para o usuário roote grupo mycrontabe acesso de leitura para todos os outros.

  4. 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 MAILTOvariável de ambiente obedecida por cronpara 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]cronMAILTO

Resumindo, por favor, dê uma olhada rápida nas páginas de manual cron(8)e .crontab(5)

…e remova seus usuários do crontabgrupo!

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

informação relacionada