rmenchio
(usa CentOS)
Enviado em 20/02/2017 - 15:34h
Não funcionou.
Pensei em outra estratégia e agora o problema é outro.
Seguinte, modifiquei o arquivo ip.php para:
<?php
$IP = $_POST['nome'];
$fp = fopen("ipnovo.txt", "a");
$escreve = fwrite($fp, "$IP");
fclose($fp);
echo "seu ip escolhido foi $IP";
system('/bin/sh /var/www/html/shell');
?>
Este script lê o ip indicado no site e joga para um arquivo txt, depois chama o seguinte shell.
#!/bin/sh
ipa=$(ifconfig wlan0 | grep 'inet addr:' | awk -F ":" '{print substr($2,1,13)}' )
VAR=$(cat ipnovo.txt)
sudo sed -i "s/$ipa/$VAR/g" /etc/network/interfaces
service networking restart
rm ipnovo.txt
Aqui ele da um grep e awk no ifconfig para extrair somente o ip atual para uma variável, e lê o arquivo ipnovo.txt para extrair a variável do futuro ip.
O problema está neste sed. Se eu testar na mão usando a variável $1 no lugar de $VAR, e chamando o script como , ele funciona sem problemas.
sed -i "s/$ipa/$1/g" /etc/network/interfaces
./shell futuro_ip
Se eu colocar um echo e executar pelo site, ele mostra o comando perfeitamente correto, mas se eu deixo simplesmente do jeito que está, ele não altera o arquivo.
echo "sed -i "s/$ipa/$VAR/g" /etc/network/interfaces"
Alguem tem alguma outra solução?
EDIT: Resolvido, era problema de permissão.