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