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: Rafael Lahm
Subject: Re: [shell-script] script não executando pelo cron
Date: Sun, 13 Feb 2005 18:39:59 -0300

Concordo contigo MrBiTs. Deixar informações sensíveis, como as contidas em um
script é completamente imprudente. Além das práticas que tu descrevestes, ainda
podemos criptografar nossos scripts com o SHC:

http://www.linuxsecurity.com/content/view/117920/49/

Quando ao caminho em que devem ficar os scripts, a coisa fica mais
complicada. Isto como a maneira de falar das pessoas, depende das companias que
as circulam e de quem as ensinou. Alguns guardam em /usr/local/admin, /scripts, 
/usr/local/scripts, /usr/local/adm, como o administrador é o "senhor" do
sistema, vale tudo... Nem o FreeBSD é um puro sangue:

http://www.freebsd.org/projects/c99/
http://people.freebsd.org/~schweikh/posix-utilities.html

o Linux esta bem longe, chegando ao ponto do Linux Standard Base
Specification ter conflitos com POSIX:

http://www.opengroup.org/platform/single_unix_specification/doc.tpl?CALLER=doc.tpl&gdid=6075

E falando em POSIX, o crontab devia verificar a existência dos arquivos
 /usr/lib/cron/cron.[allow|deny] sendo sensível ao seu conteúdo...

> - scripts e programas destinados a rodar localmente na maquina devem 
> estar localizados em /usr/local/bin

Se eles forem relacionados a administração do sistema eles devem ficar
armazenados em /usr/local/sbin de acordo com o Filesystem Hierarchy Standard. 


--
Rafael Lahm

On Sat, 12 Feb 2005 09:53:41 -0200
MrBiTs <address@hidden> wrote:

> 
> > 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]
> 
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>  
> Links do Yahoo! Grupos
> 
> 
> 
> 
>  
> 
> 
> 



reply via email to

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