Qual usuário os scripts nas pastas cron são executados? (ou seja, cron.daily, cron.hourly, etc)

51

Se eu colocar um script no /etc/cron.daily no CentOS, como ele será executado? Todos eles são executados como root ou como proprietário?

Kyle MacFarlane
fonte

Respostas:

52

Todos eles correm como root. Se você precisar de outra forma, use suno script ou adicione uma entrada crontab ao crontab ( man crontab) do usuário ou ao crontab de todo o sistema (cuja localização eu não poderia informar no CentOS).

geekosaur
fonte
17

Edit: minha resposta realmente não se aplica neste caso, veja o comentário de Zoredache abaixo. Desculpe, todos (especialmente geekosaur). Kyle, observe que se você deseja executar um script regularmente como um usuário não root, o seguinte pode ser útil; basta fazer isso através do cron.d em vez do cron. {a cada hora, diariamente, semanalmente, mensalmente}.

Odeio contradizer, mas temo que o geekosaur não esteja certo. Eles são executados como raiz, exceto onde especificado . Aqui está parte do /etc/cron.d/muninarquivo da minha caixa do CentOS :

# cron-jobs for munin
MAILTO=root
1-56/5 * * * *     munin /usr/share/munin/munin-limits --force

Observe como, na linha substantiva (linha 3), há um nome de usuário especificado antes do executável. Essa entrada específica do cron é executada como usuário munin, portanto, desde que o seu cron seja semelhante ao do CentOS 5 (vixie-cron-4.1-77), você deverá fazer o mesmo.

Chapeleiro Louco
fonte
3
Ele parece estar falando especificamente sobre cron.daily e cron.weekly, e não as coisas em cron.d / *.
precisa
4
D'oh! Obrigado, Zoredache; Eu deveria ler a pergunta com mais cuidado. Ainda não tem café! Eu a excluiria, mas acho que ainda há informações úteis na minha resposta - mas não para o OP -, então estou inclinado a deixá-lo em pé. O que você acha? (Desculpe por pular errado, geekosaur).
21411 MadHatter
O geekosaur respondeu à minha pergunta básica, mas eu nunca soube para que serve a pasta cron.d. cron.daily, etc, são bastante óbvios, assim como o crontab. Mas onde está o cron.d em tudo isso?
Kyle MacFarlane
11
Você já entendeu que a idéia de usar diretórios em vez de arquivos individuais para armazenar coleções é que facilita a adição de uma entrada por um pacote: basta soltar um arquivo em um diretório, em vez de tentar uma chamada sed complexa para editar partes de texto dentro e fora de arquivos ...
MadHatter 14/03
... No caso de munin, ele precisa executar um trabalho a cada cinco minutos, e não como raiz. Esse é um exemplo perfeito de por que o cron. {Hourly, etc.} Não é adequado para todos; alguns trabalhos cron ainda desejam especificar uma frequência e talvez um usuário e, para eles, o cron.d é melhor. Outros não, e para eles, o cron. {A cada hora, etc.} É mais simples, pois apenas despejam um script em vez de um script mais um wrapper de tempo / configuração do usuário.
21411 MadHatter