Desativa tarefas do cron para um usuário específico

4

Eu tenho uma lista de trabalhos nos crontabs para user1 , user2 . Eu quero impedir que os trabalhos de user2 sejam executados.

Eu tentei listar user2 em cron.deny , mas isso apenas impede que ele acesse seu crontab . As tarefas listadas em user2 ' crontab ainda são executadas.

Como desabilito as tarefas do cron para um usuário específico?

    
por NOLFXceptMe 19.01.2012 / 11:29

5 respostas

5

Força bruta!

crontab -u fred -e
%s/^/#/
:wq

Há provavelmente uma maneira mais elegante de fazer isso, mas a menos que você esteja fazendo isso o tempo todo, use o martelo que você tem.

    
por 19.01.2012 / 11:59
2

A maneira mais fácil de desabilitar o crontab para um usuário específico é localizar o crontab e renomeá-lo. A página man do Debian para cron diz:

cron searches its spool  area  (/var/spool/cron/crontabs)  for  crontab
files  (which  are named after accounts in /etc/passwd); crontabs found
are loaded into memory.

Apenas renomeie o arquivo para algo que não esteja na passwd, geralmente dando um sufixo como disabled , offline , dead ou similar.

mv -vi /var/spool/cron/crontabs/user2 /var/spool/cron/crontabs/user2.disabled

No Debian (e em sistemas relacionados como o Ubuntu) isso produz a seguinte entrada em /var/log/syslog :

(user2.disabled) ORPHAN (no passwd entry)

Certifique-se também de adicionar user2 ao arquivo /etc/cron.deny , caso contrário o usuário poderá criar um novo crontab para si.

Reabilite o crontab do usuário excluindo a entrada de /etc/cron.deny e renomeando seu crontab:

mv -vi /var/spool/cron/crontabs/user2.disabled /var/spool/cron/crontabs/user2
    
por 13.11.2013 / 10:48
0

crontab -r username funciona no Solaris para remover o crontab de um determinado nome de usuário.

Se -r não funcionar para você, tente:

su username 'sh -c "crontab /dev/null"'

Mais rápido para digitar e mais fácil para o script do que crontab -e .

    
por 13.02.2012 / 04:45
0

Excluir /var/spool/cron/user1 ou user2 ? e você também deseja adicionar esses nomes de usuário a /etc/cron.deny , caso contrário, eles podem adicionar esses trabalhos do cron de volta

    
por 04.10.2013 / 04:48
0

Se você quiser bloquear o trabalho do crontab para um usuário em particular, certifique-se de que o usuário logado com root, usuário root, tenha acesso apenas aos arquivos crontab. 1.Então, vá para o diretório dir / etc / cron.d nesse diretório, você pode ver que o arquivo cron.deny faz uma inserção do nome de usuário específico que o usuário deseja bloquear usando o editor vi ou orther.

    
por 17.04.2016 / 13:16

Tags