Cronogramas somente leitura para usuários

1

Aqui está um problema estranho. Eu quero fazer crontab para um usuário que é somente leitura para esse usuário em particular e só pode ser gerenciado via root. Parece fácil? Aqui está o truque:

$ ls -alh /var/spool/cron/my_user
-r-------- 1 root root 386 May  8 15:13 /var/spool/cron/my_user

Portanto, o arquivo é de propriedade / agrupado para raiz e tem apenas privilégios de leitura (0400) para raiz.

O problema:

$ su - my_user
my_user~$ crontab -e
(write something to the crontab)
crontab: installing new crontab
$ ls -alh /var/spool/cron/my_user
-rw------- 1 my_user my_user 386 May  8 15:13 /var/spool/cron/my_user

Assim, um arquivo pertencente a root, com privilégios somente leitura por raiz, poderia ser lido por um usuário não privilegiado e, em seguida, modificado para um 0600 (rw) e pertencente a esse usuário?

Que óbvio sinto falta?

    
por Mojah 08.05.2013 / 17:27

4 respostas

4

o crontab é setuid. Assim, os usuários podem atualizar seu crontab.

Qual versão do cron você está executando. Se você estiver executando uma versão que suporte a colocação de fragements em /etc/cron.d , então você deve fazer isso.

    
por 08.05.2013 / 17:34
3

Use o arquivo / etc / crontab do sistema em vez de um contab de usuário.

    
por 08.05.2013 / 17:34
1

Você pode adicionar o usuário a /etc/cron.deny . Isso negará ao usuário o acesso ao comando crontab e ela não poderá mais editar seu crontab.

AFAICT uma entrada em /etc/cron.deny não não desativa os cronjobs definidos.

    
por 09.05.2017 / 19:13
0

Você pode tornar /var/spool/cron/my_user imutável depois de instalar as modificações desejadas para evitar alterações.

sudo chattr +i /var/spool/cron/my_user

    
por 09.05.2017 / 19:07