shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] script não executando pelo cron


From: MrBiTs
Subject: Re: [shell-script] script não executando pelo cron
Date: Sat, 12 Feb 2005 09:53:41 -0200
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

> Faça um teste, faça os mesmos procedimentos q vc fez mas em vez de rodar
> tudo dentro do diretorio /root use um outro. Crie algum diretorio
> especifico pra isso no raiz, e deixe as permissões como 777.
> Tive problemas para rodar scripts com o cron q estavam dentro do
> diretorio root.
> Aqui criei um diretorio /scripts e deixei com 777 e funcionou com o
> cron. Depois de mais uns testes deixei assim:
> drwxrwx---    2 root     daemon       4096 Dez 22 14:58 scripts
> 
> e funciona normalmente com o cron.
> linha no /etc/crontab:
> 
> 30 19 * * * root /scripts/backup_databases.sh
> 
> permissões do script:
> 
> -rwxr-xr-x    1 root     root         2450 Mai 21  2004
> backup_databases.sh
> 
> 
> Pelo que entendi nos meus testes, como o diretorio root tem permissao
> 750 e dono e grupo root, o cron não consegue entrar e executar.
> Bom, é apenas uma idéia, faz o teste aí e posta pra gente o resultado.

Quero colocar algumas consideracoes sobre isso. Estamos falando aqui de 
conceituacoes POSIX que, a meu entender, poucas pessoas conhecem.

O Marcos esta certo no que diz respeito a permissoes de diretorios. 
Quando executado atraves de /etc/crontab, é necessario que seja 
especificado o usuario com permissoes para rodar o script.

Se utilizarmos a crontab especifica de cada usuario, editando-a atraves 
de crontab -e, o script poderia estar dentro do /root, mesmo que ele 
fosse 700 ( meu caso ).

Criar um diretorio /scripts e deixa-lo aberto para o mundo é uma falha 
de seguranca, visto que scripts podem conter caminhos, informacoes e 
senhas de sistemas importantes. Por exemplo, o script citado 
backup_databases.sh, poderia ter senhas de administradores de bancos de 
dados que, num sistema onde o "administrador" nao esta muito preocupado 
com a seguranca, tende a ser exatamente igual a senha de root da maquina.

Para sanar esse problema, foram criadas algumas conceituacoes:

- scripts e programas destinados a rodar localmente na maquina devem 
estar localizados em /usr/local/bin
- scripts que possuem informacoes importantes do sistema e senha devem 
ser armazenados em um local seguro ( geralmente /home/usuario ou, se for 
necessario roda-lo como root, /root ) e devem ser ativados pelo crontab 
desse usuario, atraves de um dos seguintes comandos de edicao:

crontab -e
crontab -l > cron.txt e, apos a edicao do cron.txt, crontab cron.txt

O arquivo /etc/crontab deve ser deixado em paz, para rodar somente as 
tarefas existentes em /etc/cron.[hour|day|week|month]ly

Seguindo-se essas regras simples, evitam-se problemas de seguranca e 
problemas de permissoes de execucao.


-- 
       \\|||//
       (.) (.)
--ooOO--( )--OOoo--
       MrBiTs
address@hidden
-------------------


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]