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

8

Ubuntu 14.04

Eu não entendo o comportamento que estou vendo ao configurar o crontab para uma conta de serviço (sem login) (chamada 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, tudo funciona bem:

# su -s /bin/bash curator
curator@host$ crontab -l
no crontab for curator

Existe um arquivo /etc/cron.allow vazio e nenhum arquivo /etc/cron.deny no sistema. De acordo com man crontab :

If the /etc/cron.allow file exists, then you must be listed (one user per line) therein in order to be allowed to use this command. If the /etc/cron.allow file does not exist but the /etc/cron.deny file does exist, then you must not be listed in the /etc/cron.deny file in order to use this command.

Eu entendo o erro quando estou executando o primeiro comando, mas por que ele me permite executar crontab quando eu explicitamente mudo para a conta do usuário?

Adicionar o usuário a /etc/cron.allow faz os dois comandos funcionarem bem.

    
por Adam Michalik 27.07.2016 / 17:27

1 resposta

10

Eu verifiquei as fontes do crontab e descobri que se o usuário não puder abrir /etc/cron.allow (por exemplo, após chmod 0 /etc/cron.allow ), o crontab acha que o usuário tem permissão para usá-lo (como se cron.allow não existisse). p>

Mas o root pode ler qualquer arquivo, portanto o código de verificação do crontab funciona conforme o esperado. Por isso, recomendo que você verifique as primeiras permissões em /etc/cron.allow e talvez os registros de auditoria do SELinux / AppArmor.

    
por 27.07.2016 / 19:34

Tags