Ubuntu 14.04
Eu não entendo o comportamento que estou vendo ao configurar o crontab para uma conta de serviço (sem login) (nomeada curator
).
Quando estou logado como root, é isso que recebo:
# crontab -u curator -l
The user curator cannot use this program (crontab)
Mas, quando mudo para a conta do usuário, funciona bem:
# su -s /bin/bash curator
curator@host$ crontab -l
no crontab for curator
Há um /etc/cron.allow
arquivo vazio e nenhum /etc/cron.deny
arquivo no sistema. De acordo com man crontab
:
Se o arquivo /etc/cron.allow existir, você deverá estar listado (um usuário por linha) para poder usar esse comando. Se o arquivo /etc/cron.allow não existir, mas o arquivo /etc/cron.deny existir, você não deverá estar listado no arquivo /etc/cron.deny para usar este comando.
Entendo o erro ao executar o primeiro comando, mas por que ele permite executar crontab
quando alterno explicitamente para a conta do usuário?
Adicionar o usuário /etc/cron.allow
faz com que ambos os comandos funcionem bem.
crontab -e
(como curador do usuário)?cron.allow
arquivo vazio , comoroot
crontab -u vagrant -l
ecrontab -l
comovagrant
resultado em umaare not allowed to use this program
mensagem (que é diferente da mensagem que você cita).Respostas:
Verifiquei as fontes do crontab e descobri que, se o usuário não pode abrir
/etc/cron.allow
(por exemplo, depoischmod 0 /etc/cron.allow
), o crontab acha que o usuário pode usá-lo (como secron.allow
não existisse).Como o root pode ler qualquer arquivo, o código de verificação do crontab funciona conforme o esperado. Portanto, recomendo que você verifique as primeiras permissões
/etc/cron.allow
e, talvez, os logs de auditoria do SELinux / AppArmor.fonte
chmod -r /etc/cron.allow
na verdade faz com que o comportamento descrito no meu Ubuntu 14.04 sistema/etc/cron.allow
permissões foram600
, depois de alterá-lo para644
ambosroot
ecurator
vi anot allowed to use this program (crontab)
mensagem. Então, depois de adicionarcurator
a/etc/cron.allow
ambos, poderia usar o crontab do curador.