[1] Comentário enviado por
darkness23 em 01/09/2010 - 11:54h:
Cara, show de bola, a idéia é realmente excelente, porém, existe algum padrão de nome para salvar os dois arquivos?
Meu error.log não exibe mensagem nenhuma, nem de sucesso, nem de falha...
Qual a parte do frontend do código que menciona o script para desligamento?
Ou estou fazendo algo errado, é tudo no mesmo arquivo?
Vlw, abs...
[2] Comentário enviado por
collapse em 01/09/2010 - 15:29h:
Olha, se você criar um ambiente para o desligador no apache, como http://nome_servidor/desligador, você pode chamar o arquivo de index.php que ele será chamado automaticamente. Entendi assim a sua pergunta.
Se for outra coisa, me avise para eu poder ajudá-lo.
[3] Comentário enviado por
amadureira em 01/09/2010 - 19:24h:
Cara,
Gostei da criatividade. acho que toda a ideia é bem vinda, porém, não seria mais fácil e seguro utilizar ssh para conectar na máquina e mandar um int 0 ?
[4] Comentário enviado por
dastyler em 01/09/2010 - 22:52h:
Uma idéia boa, mas por um acaso voce tentou rodar um shell_exec no src em PHP chamando o init 0 ou o shutdown?
[]'s
[5] Comentário enviado por
darkness23 em 02/09/2010 - 09:27h:
Pois é Collapse, na realidade, eu havia colocado ele como index.php, o que não funcionou.
Dai vem a outra pergunta, perdoe minha possível ignorância, mas os dois códigos mostrados no artigo fazem parte de um mesmo arquivo ou são arquivos separados?
Em caso de arquivos separados, um não deveria chamar a execução do outro?
É nesta parte que me perdi um pouco...
[6] Comentário enviado por
collapse em 02/09/2010 - 12:24h:
Amadureira, o caso é o seguinte: não tomo conta presencialmente dos servidores, por isso preciso dar autonomia aos meus clientes para que os mesmos desliguem as máquinas ao sair. Também não gosto de dar acesso físico à máquina pois já tive diversos problemas por isso.
Achei interessante fazer com PHP porque é fácil, trabalho com PHP e Linux há muito tempo, e também por ser cômodo para os clientes acessar o browser e mandar a máquina desligar.
[7] Comentário enviado por
collapse em 02/09/2010 - 12:28h:
Dastyler, procurei em várias fontes e a mais fácil de implementar, com menor custo de horas pro resultado que tive realmente seria com o sudoers. O halt é um comando de nome bem pequeno que fica mais fácil de colocar no script, além de ser o comando que eu uso há anos para desligar.
Acho que a implementação ficou simples e clara, porém ela é só um exemplo, cada um pode usar esse script como base para melhorá-lo (não esqueçam de me avisar também, hein!).
[8] Comentário enviado por
collapse em 02/09/2010 - 12:29h:
Darkness23, o index.php é o desligador, porém você tem que editar o arquivo /etc/sudoers para dar a permissão ao comando que o PHP vai executar.
[9] Comentário enviado por
stremer em 02/09/2010 - 13:43h:
cara... não achei muita utilidade na sua idéia... mas enfim... se criou deve ter.
só vou comentar pois o que você fez é EXTREMAMENTE PERIGOSO, portanto TENHA CUIDADO!
Não entendi pq você utilizou o md5 na comparação de usuário e senha. Seria para ninguem ver no código o usuário e senha??? Bem... se não utilizar https estará passando o usuário e senha e qualquer um tem acesso... pior ainda que o md5 é fraquissimo e existem mais de uma combinação que geram o mesmo hash.
outro problema que você esta executando um comando que deveria precisar do root... há problemas de permissão por ai, ou é seu apache que esta utilizando o usuário root???? Uma falha qualquer e pode entregar um shell como root para algum invasor...
EDITADO. Não tinha visto a ultima parte do sudo, porém mesmo assim alguem poderia ficar desligando a máquina da pessoa sem muito esforço.
Verificar que é um POST também não é segurança ... não entendi mesmo...
[10] Comentário enviado por
stremer em 02/09/2010 - 13:56h:
ah....
só para complementar... POST e REFERER podem ser facilmente forjados utilizando métodos muito simples, o mais simples dele seria instalar o plugin tamper data do firefox.
[11] Comentário enviado por
darkness23 em 05/09/2010 - 16:22h:
Pois é collapse, editei o arquivo /etc/sudoers...
Nada acontece no log e nem no micro, tenho um problema parecido com o seu, tenho servidores que não posso estar o tempo todo presente mas que dando permissões aos usuários de desligá-los me facilita bastante.
Tem alguma outra luz, pq realmente o código não funcionou nem com permissão concedida no sudoers...
Abs.
[12] Comentário enviado por
collapse em 06/09/2010 - 15:19h:
Stremer, meu caro, esse artigo é só a simples implementação de uma ideia, não era pra esgotar o assunto segurança.
Acredito que V.Sa. deva ter seus servidores para cuidar e ajudar o cliente a não ter tanto trabalho para desligar o servidor (seja de arquivos, seja de internet) também faça parte do seu trabalho. Ou não?
Bom se você está tão preocupado com a segurança nesse script, deve saber que a mesma pode ser provida por outros hashes, uso do Deny do apache para conexões externas ao ambiente de rede do servidor em questão e coisas do tipo.Você poderia, também, se fosse o caso, escrever uma continuação do artigo falando a parte de segurança. Apoio-o nesse sentido, assim geraríamos mais conhecimento em torno dos assuntos abordados e a coisa não ficaria parecendo picuinha entre nerds. Meu interesse não é saber mais que os outros, mas aplicar o meu conhecimento para facilitar a minha vida e daqueles que do meu trabalho dependem.
[13] Comentário enviado por
collapse em 06/09/2010 - 15:22h:
Darkness23, tive esse problema de não funcionamento quando não havia configurado o sudoers corretamente, simplesmente não funcionava mesmo.
Acho que você poderia dar uma olhadinha no seu arquivo de log do apache nesse dominio que você está usando, provavelmente lá apontará uma falta de permissão para o halt ou qualquer outro comando que você esteja usando para desligar. Se você não encontrar isso no seu log, posso tentar ajudar você a encontrar uma solução. Blz?
[14] Comentário enviado por
darkness23 em 07/09/2010 - 13:46h:
Collapse, vou dar mais uma verificada aqui e, sendo problemas alheios ao sudoers, agradeço se conseguirmos resolver juntos...
[]
[15] Comentário enviado por
darkness23 em 07/09/2010 - 15:46h:
Cara, verifiquei aqui o arquivo /etc/sudoers e realmente está correto, o arquivo simplesmente não funciona, os códigos são todos no mesmo arquivo?
[16] Comentário enviado por
collapse em 09/09/2010 - 10:26h:
Darkness23, verificou o log do apache? Lá você deve achar indicação sobre algum erro de permissão.
Dá um 'tail -f /var/log/apache/arquivo_log_do_dominio.log' e executa o desligador no browser para ver se aparece uma mensagem dessas sobre o desligador, algo que diga que o desligador não tenha permissão para acessar o halt. Provavelmente encontrará isso.
[17] Comentário enviado por
strambaioli em 09/09/2010 - 14:38h:
Será que há possibilidade desse script fazer o processo inverso, ou seja, ligar uma máquina. pode ser via WOL (Wake on lan)..... Agradeço a atenção....
[18] Comentário enviado por
collapse em 09/09/2010 - 14:50h:
Strambaioli, acredito que sim, mas tem que ver como essa mensagem seria mandada para a placa mãe, que é quem faz o serviço. Ligar não era a idéia, mas acho que pode ser implementada sim.
Se fizer a implementação, manda aqui para o VOL também.
[19] Comentário enviado por
darkness23 em 10/09/2010 - 10:31h:
Collapse, o meu error.log e access.log não exibe mensagem nenhuma, nem de erro e nem de sucesso, esse script simplesmente não faz nem cócegas no meu sistema, volto a lhe perguntar, devo colocar todos os códigos exibidos são salvos no mesmo arquivo???
Strambaioli, só pra eu entender... Vc quer acessar o apache do servidor com ele desligado??? É isso mesmo?!?!? como vc faria para acessar o micro e fazê-lo ligar se a máq. está desligada?
[20] Comentário enviado por
strambaioli em 13/09/2010 - 15:53h:
darkness23, mesmo a máquina estando desligada, pelo processo de WOL (Wake-on-lan) você consegue enviar um comando e re-ligar... O problema é que ás vezes a máquina trava e a placa de rede continua ligada pelo corrente elétrica. Por isso preciso de um script ou comando que consiga enviar algum comando via placa de rede para restart.