Pagina 1 van 1

Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 15:50
door Robert Ford
Hallo,

mijn vraag staat ook in een ander (misschien minder druk bezocht topic)

http://userbase.be/forum/viewtopic.php? ... 32#p553932


Ik zou graag een shell commando willen laten uitvoeren via het bezoeken van een bepaalde URL.

Het commando dat zou moeten worden uitgevoerd is het volgende:

echo "Dit is een test" | gnokii --sendsms +32474123456


Ik heb al wat liggen lezen over cgi-bin en apache2 maar ik krijg het niet werkend op mijn raspberry met raspbian.



Het liefst zou ik geen php or mysql willen gebruiken, ik ken er toch de kloten van :)


Blijkt dat ik een cgi-bin dir moeten toewijzen in de httpd.conf die apache dan kan gebruiken om een cgi script uit te voeren via http://192.168.1.124/cgi-bin/script.cgi maar ik krijg een melding dat het niet toegestaan is of zoiets.

Kan er iemand mij een kleine tutorial schrijven? :)

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 16:13
door laroyj
moest je nu uw scripje al eens op een plaats zetten waar we eraan kunnen via een ddns link bvb :) nu gebruik je een intern ip....

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 16:16
door krisken
Kan je via PHP geen scripts uitvoeren?

//EDIT : zie net dat je dit niet wilt gebruiken :)

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 16:21
door krisken
Misschien toch eens PHP proberen :-)

http://stackoverflow.com/questions/1105 ... d-from-php

Je moet dus een scriptje maken (test.sh) met daarin je commando "echo "Dit is een test" | gnokii --sendsms +32474123456".

Vervolgens zet je bovenaan in je pagina

<?php

$output = shell_exec("./test.sh");
echo "<pre>$output</pre>";

?>

Ben geen php kenner, maar denk dat het zo moet.
Misschien kan je - geen idee - jouw commando meteen bij shell_exec zetten?

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 16:30
door guntherstassen
exec_shell etc is eigenlijk NOT DONE. Te veel security issue's.
Je moet gewoon een sms versturen?.... Gebruik eventueel een betamax cloon. daar kan je met behulp van een url een sms versturen.

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 16:34
door krisken
Geen idee, was t eerste dat ik online kon vinden.

En hij wilt zijn eigen apparatuur gebruiken (raspberry pi), geen betamaxcloon.

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 16:40
door Robert Ford
guntherstassen schreef:exec_shell etc is eigenlijk NOT DONE. Te veel security issue's.
Je moet gewoon een sms versturen?.... Gebruik eventueel een betamax cloon. daar kan je met behulp van een url een sms versturen.

De raspberry zal ook niet aan internet hangen dus om security issues geef ik eigen niet zo veel. Het sturen van de sms lukt, nu enkel nog een url die dit kan triggeren. Het maakt me niet uit of het cgi, perl of php is. Ik ken er de ballen van :)

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 16:41
door krisken
Probeer eens wat ik zei, en laat eens weten of dat werkt?

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 16:47
door Robert Ford
Ondersteunt apache2 standaard php? Of heb ik daar een of andere mod voor nodig?

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 16:54
door krisken
Zou out of the box moeten werken

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 17:16
door Loeri

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 17:25
door raf1
Volgende tutorial zou toch voloende aanwijzingen moeten bevatten: http://www.raspberrypi.org/documentatio ... /apache.md

En daarna doe je gewoon:

Code: Selecteer alles

<?php
echo "Dankzij userbase.be kan ik een url een sms laten sturen.";
$scriptje = 'echo "Dit is een test" | gnokii --sendsms +32474123456';
$output = shell_exec($scriptje);
echo "$output";
?>

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 17:40
door Robert Ford
Ik heb het eens geprobeerd met jouw scriptje raf1 maar enkel een echo commando krijg ik teruggestuurd in de browser. Ik heb het piping teken ook eens laten vallen en het op deze manier geprobeerd:

Als ik bijvoorbeeld dit probeer:

$scriptje = 'echo "hallo"';

krijg ik in de browser

Code: Selecteer alles

Dankzij userbase.be kan ik een url een sms laten sturen.hallo

Code: Selecteer alles

<?php
echo "Dankzij userbase.be kan ik een url een sms laten sturen.";
$scriptje = 'gnokii --sendsms +32474123456 --report < "/var/www/html/file.txt"';
$output = shell_exec($scriptje);
echo "$output";
?>

Zo probeer ik om het in 1 commando uit te voeren. Jammer genoeg zonder positief resultaat :(

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 18:57
door raf1
Als je "2>&1" toevoegt aan het scriptje, krijg je hopelijk nuttige errormeldingen in de browser.

Code: Selecteer alles

$scriptje = 'echo "Dit is een test" | gnokii --sendsms +32474123456 2>&1';

Re: Uitvoeren van scripts via website

Geplaatst: 03 jul 2014, 23:28
door Robert Ford
Wel als ik jouw tip opvolg krijg ik volgende melding in de browser:

Dankzij userbase.be kan ik een url een sms laten sturen.GNOKII Version 0.6.30 Couldn't read (null)/.config/gnokii/config config file. Cannot open logfile ./gnokii-errors WARNING: cannot open logfile, logs will be directed to stderr Gnokii serial_open: open: No such file or directory Couldn't open FBUS device: No such file or directory Gnokii serial_open: open: No such file or directory Couldn't open FBUS device: No such file or directory Gnokii serial_open: open: No such file or directory Couldn't open FBUS device: No such file or directory Telephone interface init failed: Command failed. Quitting. Command failed. $scriptje = 'echo "Dit is een test" | gnokii --sendsms +32474123456 2>&1';


Het rare is dat het commando manueel uitvoeren wel werkt. Met welke rechten wordt zo'n shell_exec uitgevoerd?

update: intussen ben ik erachter gekomen dat de user www-data is. Kan ik deze op een of andere manier meer rechten geven? Of eventueel die shell_exec als root uitvoeren?

Ik weet dat het allemaal niet veilig is maar dit zal gebruikt worden in een gesloten systeem dus maakt niet veel uit..

Re: Uitvoeren van scripts via website

Geplaatst: 04 jul 2014, 01:17
door ubremoved_15739
En waarom zou je account www-data meer rechten geven? Dat is toch helemaal niet nodig.
  • Laat bijvoorbeeld account www-data rustig in zijn eigen vertrouwde omgeving bestanden aanmaken.
    Deze bestanden bevatten telkens het te zenden bericht en GSM nummer (in tab delimited formaat).
  • Laat een tweede account, met meer rechten, de berichten zenden door periodiek te checken of er een nieuw bestand is bijgekomen.
Uiteraard kan dit ook met behulp van een database of whatever. Variaties te over, zou ik zo zeggen.

Uitgangspunt is dat je het simpel én veilig houdt.

Re: Uitvoeren van scripts via website

Geplaatst: 04 jul 2014, 07:52
door raf1
Begin eens met het pad naar de originele config-file aan het scriptje toe te voegen, er zullen al heel wat errors verdwijnen:

Code: Selecteer alles

$scriptje = 'echo "Dit is een test" | gnokii --config /home/gebruikersnaam/.config/gnokii/config --sendsms +32474123456 2>&1';