Squid - PHP

1. Squid - PHP

Diego Paganini
diegopaganini17

(usa Ubuntu)

Enviado em 03/06/2014 - 11:41h

Preciso reinicar o Squid via PHP.

tenho uma página web em PHP, o Script abaixo serve para bloquear uma pagina de internet que foi digitada pelo usuário.

<?php
$file = ("/etc/squid3/bloqueio/sites.txt");
$insert = $_POST['pagina']. "\n";
$myFile = fopen($file, 'a+');

fwrite ($myFile, $insert);
//push ($insert) = $file;
fclose($myFile);
$comando = ("/etc/squid3/bloqueio./teste.sh");
shell_exec ($comando);
?>

Essa pagina pega o que o usuário digitou e insere dentro do arquivo sites.tx

depois disso ele executa o arquivo: ./teste.sh
(#!/bin/bash
squid3 -k reconfigure)

OBS: toda vez que o usuário inserir uma nova pagina para bloquear, rpeciso rodar esse comando automaticamente squid3 -k reconfigure, mas vai .sh nao estou conseguindo..

Pdoeria me ajudar a rodar esse comando: squid3 -k reconfigure automaticamente toda vez que for inserido uma palavra dentro do arquivo: sites.txt





  


2. Re: Squid - PHP

Phillipe Smith
smithux

(usa Arch Linux)

Enviado em 03/06/2014 - 13:48h

Meu camarada, veja como você colocou o comando:
/etc/squid3/bloqueio./teste.sh 


Há um '.' após 'bloqueio', deveria ser assim sua linha:
/etc/squid3/bloqueio/teste.sh 



3. Re: Squid - PHP

Diego Paganini
diegopaganini17

(usa Ubuntu)

Enviado em 03/06/2014 - 16:06h

Colega, com o seo o ponto também nao funciiona.

Acredito que o problema deve ser porque esse comando: squid3 -k reconfigure só funciona quando é executado como sudo.

E parece da forma que esta ele esta executando com o usuário normal.

Voce sabe de alguma forma para fazer esse comando: squid3 -k reconfigure ser executado como usuário normal?


4. Re: Squid - PHP

Phillipe Smith
smithux

(usa Arch Linux)

Enviado em 03/06/2014 - 16:22h

E porque não colocar no seu script o "sudo" antes do comando?
Já testou?

É possível configurar o "sudo" para que um usuário execute o comando sem pedir senha.
Utilize o comando "visudo" para editar o arquivo "/etc/sudoers".
Por exemplo:

usuario1 ALL = (root) NOPASSWD: /usr/sbin/squid3 *



5. Re: Squid - PHP

Diego Paganini
diegopaganini17

(usa Ubuntu)

Enviado em 03/06/2014 - 16:29h

já coloquei o sudo no script mas nao funcionou também.


olha o meu arquivo visudo, fica assim mesmo?


# User privilege specification
root ALL=(ALL:ALL) ALL
usuario ALL = (root) NOPASSWD: /usr/sbin/squid3 *

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d



6. Re: Squid - PHP

Phillipe Smith
smithux

(usa Arch Linux)

Enviado em 03/06/2014 - 16:54h

diegopaganini17 escreveu:

já coloquei o sudo no script mas nao funcionou também.


olha o meu arquivo visudo, fica assim mesmo?


# User privilege specification
root ALL=(ALL:ALL) ALL
usuario ALL = (root) NOPASSWD: /usr/sbin/squid3 *

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d


Isso mesmo, só que no seu script teste.sh deve ficar assim:
sudo -u usuario '/usr/sbin/squid3 -k reconfigure' 



7. Re: Squid - PHP

Diego Paganini
diegopaganini17

(usa Ubuntu)

Enviado em 03/06/2014 - 17:23h

Não funciona...
olha o que acontece quando tento executar o arquivo via ./teste.sh

--------------------------------------------------------------------------------------

#!/bin/bash
sudo -u diego '/usr/sbin/squid3 -k reconfigure'


root@ubuntu:/etc/squid3/bloqueio# ./teste.sh
sudo: /usr/sbin/squid3 -k reconfigure: comando não encontrado

--------------------------------------------------------------------------------------

#!/bin/bash
sudo -u diego 'squid3 -k reconfigure'

root@ubuntu:/etc/squid3/bloqueio# ./teste.sh
sudo: squid3 -k reconfigure: comando não encontrado

--------------------------------------------------------------------------------------

#!/bin/bash
sudo -u diego squid3 -k reconfigure

root@ubuntu:/etc/squid3/bloqueio# ./teste.sh
squid: ERROR: Could not send signal 1 to process 3973: (1) Operation not permitted

--------------------------------------------------------------------------------------


8. Re: Squid - PHP

Buckminster
Buckminster

(usa Debian)

Enviado em 03/06/2014 - 21:41h

Veja bem, o comando está certo dentro do arquivo ./teste.sh

#!/bin/bash
sudo -u diego squid3 -k reconfigure


Essa mensagem de erro abaixo é do Squid.
Qualquer dúvida, posta aqui teu squid.conf.

root@ubuntu:/etc/squid3/bloqueio# ./teste.sh
squid: ERROR: Could not send signal 1 to process 3973: (1) Operation not permitted

Quando tu executa direto no terminal squid3 -k reconfigure, esse comando funciona?


9. Re: Squid - PHP

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 03/06/2014 - 22:45h

smithux escreveu:

diegopaganini17 escreveu:

já coloquei o sudo no script mas nao funcionou também.


olha o meu arquivo visudo, fica assim mesmo?


# User privilege specification
root ALL=(ALL:ALL) ALL
usuario ALL = (root) NOPASSWD: /usr/sbin/squid3 *

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d


Isso mesmo, só que no seu script teste.sh deve ficar assim:
sudo -u usuario '/usr/sbin/squid3 -k reconfigure' 


O php esta rodando com o user do apache no caso de debian likes o user é o www-data então deve colocar ele no sudo sem pedir senha.
http://www.vivaolinux.com.br/topico/Squid-Iptables/Forcar-Pagina-Inicial-com-Squid

Da uma olhada e pede pro cara se tem como postar a versão final do php


10. Re: Squid - PHP

Diego Paganini
diegopaganini17

(usa Ubuntu)

Enviado em 03/06/2014 - 22:55h

sim esse comando: squid3 -k reconfigure funciona, mas somente com o usuario root


11. Re: Squid - PHP

Phillipe Smith
smithux

(usa Arch Linux)

Enviado em 04/06/2014 - 08:55h

diegopaganini17 escreveu:

Não funciona...
olha o que acontece quando tento executar o arquivo via ./teste.sh

--------------------------------------------------------------------------------------

#!/bin/bash
sudo -u diego '/usr/sbin/squid3 -k reconfigure'


root@ubuntu:/etc/squid3/bloqueio# ./teste.sh
sudo: /usr/sbin/squid3 -k reconfigure: comando não encontrado

--------------------------------------------------------------------------------------

#!/bin/bash
sudo -u diego 'squid3 -k reconfigure'

root@ubuntu:/etc/squid3/bloqueio# ./teste.sh
sudo: squid3 -k reconfigure: comando não encontrado

--------------------------------------------------------------------------------------

#!/bin/bash
sudo -u diego squid3 -k reconfigure

root@ubuntu:/etc/squid3/bloqueio# ./teste.sh
squid: ERROR: Could not send signal 1 to process 3973: (1) Operation not permitted

--------------------------------------------------------------------------------------


Diego, eu só tinha dado um exemplo de como ficaria no seu arquivo 'sudoers', você deve verificar qual o cominho correto do seu squid3 e alterar.



12. Re: Squid - PHP

Diego Paganini
diegopaganini17

(usa Ubuntu)

Enviado em 04/06/2014 - 10:08h

Bom eu resolvi o meu problema.

Eu precisa reiniciar o squid via esse comando: Squid3 -k reconfigure

Então eu utilei o seguinte comando: crontab -ls

criei uma nova tarefa


* * * * * sh /etc/squid3/bloqueio/teste.sh

#!/bin/bash
squid3 -k reconfigure

chmod 777 teste.sh


Então essa terefa será executada toda hora sem para




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts