O usuário x não pode usar este programa (crontab)

9

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.allowarquivo vazio e nenhum /etc/cron.denyarquivo 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 crontabquando alterno explicitamente para a conta do usuário?

Adicionar o usuário /etc/cron.allowfaz com que ambos os comandos funcionem bem.

Adam Michalik
fonte
1
Apenas diz que não há crontab. O que acontecerá se você tentar criar uma via crontab -e(como curador do usuário)?
Fiximan 27/07/16
1
Não é possível reproduzir esse problema na imagem vagrant trusty64; com um cron.allowarquivo vazio , como root crontab -u vagrant -le crontab -lcomo vagrantresultado em uma are not allowed to use this programmensagem (que é diferente da mensagem que você cita).
thrig 27/07

Respostas:

11

Verifiquei as fontes do crontab e descobri que, se o usuário não pode abrir /etc/cron.allow(por exemplo, depois chmod 0 /etc/cron.allow), o crontab acha que o usuário pode usá-lo (como se cron.allownã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.allowe, talvez, os logs de auditoria do SELinux / AppArmor.

Michael Zarubin
fonte
Este parece ser isso - eu ter verificado que chmod -r /etc/cron.allowna verdade faz com que o comportamento descrito no meu Ubuntu 14.04 sistema
steeldriver
Spot on! Minhas /etc/cron.allowpermissões foram 600, depois de alterá-lo para 644ambos roote curatorvi a not allowed to use this program (crontab)mensagem. Então, depois de adicionar curatora /etc/cron.allowambos, poderia usar o crontab do curador.
Adam Michalik