Uitvoeren van scripts via website

Alles over programmeren en development binnen de IT-wereld
Plaats reactie
Robert Ford
Elite Poster
Elite Poster
Berichten: 1517
Lid geworden op: 12 nov 2005, 18:54
Uitgedeelde bedankjes: 102 keer
Bedankt: 101 keer

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? :)
laroyj
Elite Poster
Elite Poster
Berichten: 2006
Lid geworden op: 19 maa 2011, 08:42
Locatie: TIELT
Uitgedeelde bedankjes: 24 keer
Bedankt: 103 keer

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....
Internet: Orange vast+4G+Telenet Basic + EDPNET SLA VDSL2 (85/20)
Telefonie: VOIP: EDPNET + Weepee + Cheapconnect + Internetcalls
GSM: Orange Arend60
Tablet: Ipad2/Android
TV: Orange Digt tv-Tv Vlaanderen-Canaal Digitaal-Stievie
Netwerk: Giga Orange/Telenet IPV4-Giga EDPNET SLA IPV4/IPV6-Giga FON-netwerk NanobridgeM5
radiometeor.be
Gebruikersavatar
krisken
userbase crew
userbase crew
Berichten: 19763
Lid geworden op: 07 nov 2006, 12:11
Twitter: kriskenbe
Locatie: Massemen - 91WET0
Uitgedeelde bedankjes: 1857 keer
Bedankt: 1035 keer

Kan je via PHP geen scripts uitvoeren?

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

Internet = Orange 150/15Mbps + WirelessBelgië
Telefonie = EDPnet + OVH
GSM = Orange Go Extreme SE + Scarlet Red
TV = TVV App + Netflix + Disney+ + Streamz
Netwerk = Mikrotik + Ubiquiti
Gebruikersavatar
krisken
userbase crew
userbase crew
Berichten: 19763
Lid geworden op: 07 nov 2006, 12:11
Twitter: kriskenbe
Locatie: Massemen - 91WET0
Uitgedeelde bedankjes: 1857 keer
Bedankt: 1035 keer

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?

Internet = Orange 150/15Mbps + WirelessBelgië
Telefonie = EDPnet + OVH
GSM = Orange Go Extreme SE + Scarlet Red
TV = TVV App + Netflix + Disney+ + Streamz
Netwerk = Mikrotik + Ubiquiti
Gebruikersavatar
guntherstassen
Pro Member
Pro Member
Berichten: 316
Lid geworden op: 09 feb 2011, 20:16
Locatie: Sint-Truiden
Uitgedeelde bedankjes: 12 keer
Bedankt: 27 keer

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.
Gebruikersavatar
krisken
userbase crew
userbase crew
Berichten: 19763
Lid geworden op: 07 nov 2006, 12:11
Twitter: kriskenbe
Locatie: Massemen - 91WET0
Uitgedeelde bedankjes: 1857 keer
Bedankt: 1035 keer

Geen idee, was t eerste dat ik online kon vinden.

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

Internet = Orange 150/15Mbps + WirelessBelgië
Telefonie = EDPnet + OVH
GSM = Orange Go Extreme SE + Scarlet Red
TV = TVV App + Netflix + Disney+ + Streamz
Netwerk = Mikrotik + Ubiquiti
Robert Ford
Elite Poster
Elite Poster
Berichten: 1517
Lid geworden op: 12 nov 2005, 18:54
Uitgedeelde bedankjes: 102 keer
Bedankt: 101 keer

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 :)
Gebruikersavatar
krisken
userbase crew
userbase crew
Berichten: 19763
Lid geworden op: 07 nov 2006, 12:11
Twitter: kriskenbe
Locatie: Massemen - 91WET0
Uitgedeelde bedankjes: 1857 keer
Bedankt: 1035 keer

Probeer eens wat ik zei, en laat eens weten of dat werkt?

Internet = Orange 150/15Mbps + WirelessBelgië
Telefonie = EDPnet + OVH
GSM = Orange Go Extreme SE + Scarlet Red
TV = TVV App + Netflix + Disney+ + Streamz
Netwerk = Mikrotik + Ubiquiti
Robert Ford
Elite Poster
Elite Poster
Berichten: 1517
Lid geworden op: 12 nov 2005, 18:54
Uitgedeelde bedankjes: 102 keer
Bedankt: 101 keer

Ondersteunt apache2 standaard php? Of heb ik daar een of andere mod voor nodig?
Gebruikersavatar
krisken
userbase crew
userbase crew
Berichten: 19763
Lid geworden op: 07 nov 2006, 12:11
Twitter: kriskenbe
Locatie: Massemen - 91WET0
Uitgedeelde bedankjes: 1857 keer
Bedankt: 1035 keer

Zou out of the box moeten werken

Internet = Orange 150/15Mbps + WirelessBelgië
Telefonie = EDPnet + OVH
GSM = Orange Go Extreme SE + Scarlet Red
TV = TVV App + Netflix + Disney+ + Streamz
Netwerk = Mikrotik + Ubiquiti
Gebruikersavatar
Loeri
Premium Member
Premium Member
Berichten: 491
Lid geworden op: 04 sep 2011, 14:32
Uitgedeelde bedankjes: 70 keer
Bedankt: 25 keer

Gebruikersavatar
raf1
Elite Poster
Elite Poster
Berichten: 6201
Lid geworden op: 17 nov 2009, 22:39
Uitgedeelde bedankjes: 273 keer
Bedankt: 1964 keer
Recent bedankt: 5 keer

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";
?>
Robert Ford
Elite Poster
Elite Poster
Berichten: 1517
Lid geworden op: 12 nov 2005, 18:54
Uitgedeelde bedankjes: 102 keer
Bedankt: 101 keer

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 :(
Gebruikersavatar
raf1
Elite Poster
Elite Poster
Berichten: 6201
Lid geworden op: 17 nov 2009, 22:39
Uitgedeelde bedankjes: 273 keer
Bedankt: 1964 keer
Recent bedankt: 5 keer

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';
Robert Ford
Elite Poster
Elite Poster
Berichten: 1517
Lid geworden op: 12 nov 2005, 18:54
Uitgedeelde bedankjes: 102 keer
Bedankt: 101 keer

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..
ubremoved_15739
Elite Poster
Elite Poster
Berichten: 2831
Lid geworden op: 13 jul 2010, 13:21
Uitgedeelde bedankjes: 599 keer
Bedankt: 532 keer

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.
Gebruikersavatar
raf1
Elite Poster
Elite Poster
Berichten: 6201
Lid geworden op: 17 nov 2009, 22:39
Uitgedeelde bedankjes: 273 keer
Bedankt: 1964 keer
Recent bedankt: 5 keer

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';
Plaats reactie

Terug naar “Development”