ScornInPC 1 Denunciar post Postado Março 13, 2007 Pessoal, procurei por isso o dia todo, sem sucesso. to precisando executar um comando no linux por um script meu, logo procurei por algum comando que me desse a flexibilidade de me deixar ser root apenas naquele comando, algo como sudo -u root -p senha -s cat /var/log/squid/access.log ou ainda su -l root -p senha -c cat /var/log/squid/access.log sem sucesso =/ agora pergunto, que eu saiba naum existe nenhuma função do php que faça isso, ou tem?? alguem ja se viu nessa situação?? outra coisa, se alguem ai tiver noção de blinding, poderiamos fazer uma extenssãozinha pra isso, o que acham? Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Março 14, 2007 Brunão, não sei se isso aí te ajuda mas... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif system() passthru() Abraço, Anderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Março 14, 2007 Anderson, to sabendo. o problema naum eh esse. seguinte, quando um usuario acessa um servidor linux, ele esta acessando o scrip com o usuario nobody. esse usuario naum tem permissão de muita coisa, e preciso fazer uma delas. logo se fizer um script assim: system("sudo -s");system("senha");system("comando"); naum funciona, claro. Logo preciso de um comando que faça algo assim system("sudo -p senha -s comando") captch ;) inicialmente o duvida seria de linux. Porem pergunto aqui, se existe algum comando que possa fazer isso por exemplo. systemroot("comando", "senha_do_root") alguem ja viu algo assim?? se naum, proponho em fazer um sistema que o faça, com alguem mais. Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Março 14, 2007 Para executar o comando sudo são necessários 2 coisas: - 1o, o comando deve estar instalado; (em algumas distribuições este recurso não é padrão) - 2o, o usuário (nobody) deve estar na lista de sudoers; (caso o comando sudo esteja instalado, o arquivo sudoes esta no diretório /etc) No mais, há outras formas de solucionar o problema. No primeiro post você colocou que quer acessar e listar o conteúdo do arquivo de log de acessos do squid, certo? Você pode criar um link simbólico de um diretório web para este arquivo; Dar permissão de leitura no arquivo citado; Se a instalção é criar relatórios de acesso, você pode instalar o SARG. http://www.devin.com.br/eitch/sarg/ http://www.vivaolinux.com.br/artigos/verAr...php?codigo=1416 http://www.zago.eti.br/squid/sarg.html Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Março 14, 2007 Prog, acho que você entendeu +/- o que ue quero.bom, vamo la:tenho que fazer um sistema onde os estagiarios, ao verem um usuario entrando em algo proibido, acessem o sistema e listem os 10 ultimos sites que a pessoa entrou, para saber a palavra que deve-se bloquear. assim ele adiciona a palavra e reconfigura o squid.naum quero dar permissão ao arquivo, pois toda semana ele eh automaticamente renomeado e compactado, assim o squid recria ele, entuam acabaria ficando algo manual novamente, pois teria que toda semana dar permissão pra ele. Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Março 14, 2007 Bem, instalei o SQUID aqui pra ver exatamente como ficavam as permissões do diretório. Constatei que realmente ele criar o diretório e os arquivos sem permissões suficiente, desta forma, vamos precisar fazer 2 coisas. Uma maneira seria colocar a propriedade cache_effetive_group como nogroup (grupo do usuário do nobody). Desta forma, toda vez que ele gerar um novo arquivo de log, este viria com a permissão r (read) para o nogroup. Tentei mexer na propriedade umask do arquivo de configuração do squid, mas não tive sucesso, ele sempre gerava os arquivos com as mesmas permissões. Você também vai precisar dar permissão no diretório /var/log/squid, para que o usuário possa "entrar": chmod o+xr /var/log/squid Acredito que com isto resolva. Ou você pode tentar instalar o sudo no servidor. (não acho esta uma tarefa muito segura para este caso) Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Março 14, 2007 Prog, o sudo existe no servidor, tem como passar a senha pelo proprio sudo?? sem o proptzinho pedindo a senha? isso sim seria o melhor. isso naum influenciaria em nada na segurança do servidorha, no man do sudo naum diz nada sobre algum parametro para senha Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Março 14, 2007 Você precisa incluir esta linha no seu arquivo sudoers: nobody ALL=NOPASSWD:ALL Depois, só executar seus comandos: echo system("sudo tail -20 /var/log/squid/access.log"); Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Março 14, 2007 Prog, mais fazendo isso nobody ALL=NOPASSWD:ALL o nobody vai poder usar o sudo sem senha naum eh?? isso pode gerar insegurança =/ se for isso mesmo, vai ser inviavel seria legal poder tirar a senha só para o tail Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Março 14, 2007 Então você coloca assim: nobody ALL=NOPASSWD:/usr/bin/tail Caso você precise incluir outros comandos, terá que incluir o binário de cada comando, exemplo: nobody ALL=NOPASSWD:/usr/bin/tail,/usr/bin/head Compartilhar este post Link para o post Compartilhar em outros sites