Auteur Topic: Simpele Shell  (gelezen 6623 keer)

Offline wizjos

  • Administrator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 123
  • -Ontvangen: 181
  • Berichten: 1.998
Simpele Shell
« Gepost op: 08 oktober 2008, 16:13:05 »
Dit is een shell script waarmee je bijna alles kunt doen wat je ook via telnet kunt.

application.cfg:
text = shell
description = shell
type = embedded
path = /phpsrc/shell/shell.cgi

shell.cgi: NB. Bijgewerkt met de beveiliging van Merty. Zie http://synology.nl/forum/viewtopic.php?f=83&t=2274.
#!/bin/ash
# if not admin or no user at all...no authentication...so, bye-bye
user=$(/usr/syno/synoman/webman/modules/authenticate.cgi);
if [ "$user" !=  "admin" ] ;
then
  echo "Content-type: text/html"
  echo ""
  echo "<HTML><HEAD><TITLE>Login Required</TITLE></HEAD><BODY>Please login as admin first, before using this webpage</BODY></HTML>
else
  cmd=$(echo $QUERY_STRING | sed 's/+/ /g' | sed 's#%([0-9A-F][0-9A-F])#\x1#g')
  cmd=${cmd##*=}
  cmd=$(echo -e $cmd)
  echo "Content-type: text/html"
  echo ""
  echo "<html><head><title>Shell</title></head><body>"
  echo "<style>body{font:11px Arial;}</style>"
  echo "<form name='f' method='get' action='shell.cgi'>"
  echo "<input size=100 style='font:11px Courier New' type=text name='cmd'>"
  echo "<input type=submit value=go>"
  echo "</form>"
  echo "<div style='background-color:#ccf;border:1px solid #ccc;height:500px;overflow:auto'><pre>"
  echo '$ '$cmd
  ash -c "$cmd"
  echo "</pre></div>"
  echo "</div></body></html>"
fi

Ziet er zo uit:



cgi script zoals altijd met chmod 755 uitvoerbaar maken.

Korte verklaring: Het script toont een form om je Linux commandos op te geven. Met de knop (of Return) versturen. Het script roept zichzelf weer op. Het opgegeven commando wordt via de opdracht 'ash -c $cmd' uitgevoerd.

Let op! Er wordt telkens een nieuwe shell gestart, zodat opeenvolgende commando's niet in 'dezelfde' shell uitgevoerd worden, dit houdt in dat een 'cd ..' en daarna 'ls -l' alleen werkt als je dat als volgt opgeeft: 'cd ..;ls -l' (met een puntkomma er tussen dus).

Sommige programma's lopen niet (bv. vi), andere wel; sommige shell-omgevingsvariabelen kloppen niet ...

LET OP! Je kan ieder commando opgeven! Met als gevolg, dat je ook de grootst mogeliijke schade kunt aanrichten. Dus altijd even nadenken voor je wat doet - het is net als in telnet ... dus geen rm -r ... of zo ... dat kan je al je data kosten.

Succes!

Wizjos
Wizjos.


DS409+    4 x WD10EADS DSM 4.2-3243       [TEST]
DS214play 1 x WD20EARX DSM 6.1.4-15217-3  [PROD]
DS1513+   5 x WD80EFZX DSM 6.1.4-15217-5  [PROD]
RT1900ac               SRM 1.1.6-6931-1   [PROD]


Is RAID hetzelfde als een backup?
Goeie schijven voor je NAS? Neem Western Digital!

Offline wizjos

  • Administrator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 123
  • -Ontvangen: 181
  • Berichten: 1.998
Re: Simpele Shell
« Reactie #1 Gepost op: 25 oktober 2008, 21:15:27 »
Code is bijgewerkt met de beveiliging van Merty.

Groet,

Wizjos
Wizjos.


DS409+    4 x WD10EADS DSM 4.2-3243       [TEST]
DS214play 1 x WD20EARX DSM 6.1.4-15217-3  [PROD]
DS1513+   5 x WD80EFZX DSM 6.1.4-15217-5  [PROD]
RT1900ac               SRM 1.1.6-6931-1   [PROD]


Is RAID hetzelfde als een backup?
Goeie schijven voor je NAS? Neem Western Digital!

Offline johna

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 3
Re: Simpele Shell
« Reactie #2 Gepost op: 26 februari 2009, 16:14:30 »
In welke directory moet deze shell geplaatst worden ?
Verschijnt deze ook automatisch in DSM 2 ?
DS209+ / DSM 2.1-832 / 2x WD10EACS

Offline wizjos

  • Administrator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 123
  • -Ontvangen: 181
  • Berichten: 1.998
Re: Simpele Shell
« Reactie #3 Gepost op: 27 februari 2009, 09:54:09 »
Citaat van: "johna"
In welke directory moet deze shell geplaatst worden ?
Verschijnt deze ook automatisch in DSM 2 ?

Als je even goed kijkt zie je in de code bij application.cfg al staan '/phpsrc/shell/'. Gezien je vraag vermoed ik dat je je niet volledig hebt ingelezen in de ins en outs van 3rd party applications :?
Lees de volgende stukken eerst even aandachtig door:
Synology NAS Server 3rd-Party Apps Integration (en dan met name de PDF!)
3rd party apps handleiding

Succes!

Wizjos
Wizjos.


DS409+    4 x WD10EADS DSM 4.2-3243       [TEST]
DS214play 1 x WD20EARX DSM 6.1.4-15217-3  [PROD]
DS1513+   5 x WD80EFZX DSM 6.1.4-15217-5  [PROD]
RT1900ac               SRM 1.1.6-6931-1   [PROD]


Is RAID hetzelfde als een backup?
Goeie schijven voor je NAS? Neem Western Digital!

Offline johna

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 3
Re: Simpele Shell
« Reactie #4 Gepost op: 27 februari 2009, 16:11:00 »
Hallo,

Ik heb deze handleiding wel gelezen maar zie het verband niet met deze oplossing.
Er wordt daarin gesproken dat er ool 2 images bijhoren en die zie ik niet.
De configfile zou in synoman moeten ? En als ik dit doe dan zou deze in DSM komen ?
Hier wordt ook gecompileerd via deze handleiding moet dit ook, dit is toch PHP.
Sorry, ik begrijp er niet van eerlijk gezegd.
DS209+ / DSM 2.1-832 / 2x WD10EACS

Offline johna

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 3
Re: Simpele Shell
« Reactie #5 Gepost op: 27 februari 2009, 16:32:56 »
Nog enkele vragen die ik heb.
Ik wilde een simpele commandoregel (shell) op mijn NAS hebben, is dit zo met deze oplossing ?
(zonder putty o.i.d. op mijn pc te installeren en SSh aan te zetten)
Moet ik eerst IPKG installeren, zie niet hoe ik bij deze directories moet komen, niet met FTP en ook niet met FileManager ?
Ik dacht dat ik simpel deze files naar de juiste directories kon kopieren, maar helaas kan dit dus niet, hoe moet dit ?
Als nu package zou zijn, zoals U hierboven suggureerde dan was het eenvoudig, of begrijp ik er nu helemaal niets van ?
Wat is verschil tussen IPKG en packages ?
Kan of moet ik hiervan een packages maken en waar haal ik de images vandaan ?
DS209+ / DSM 2.1-832 / 2x WD10EACS

Offline wizjos

  • Administrator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 123
  • -Ontvangen: 181
  • Berichten: 1.998
Re: Simpele Shell
« Reactie #6 Gepost op: 27 februari 2009, 21:49:39 »
Tja, als je het engelstalige pdf bestand goed gelezen zou hebben had je een stuk zien staan over 'Integrating into the Synology Disk Station Manager 2.0'. Daar gaat het wel degelijk over php-scripts en hoe deze te integreren in de DSM... Nog simpeler kan het bijna niet uitgelegd worden :mrgreen:
Deze shell oplossing (zoals beschreven hierboven) geeft de mogelijkheid om opdrachten die je anders via de commandline dient te geven, via een webinterface op te geven. Echter, zoals ook hierboven beschreven, niet alles kan en zal werken... Je zal dus altijd een telnet/putty ingang nodig blijven hebben... al was het maar om dit soort oplossingen te kunnen plaatsen...

Nee, de zaken die ik hier geplaatst heb staan om een aantal redenen niet in een handzame package verpakt:
1) Ik draai zelf nog een oude versie van de DSM die dit niet ondersteunt; ik zie geen vooralsnog geen reden om mijn configuratie te updaten... If it ain't broke, don't fix it :mrgreen:
2) Juist om de beschreven 'eenvoudigheid' van een package zou ik niet overwegen deze oplossingen zo aan te bieden: ik vind dat je dient te begrijpen waar je mee bezig bent en wat je in handen hebt alvorens iets van iemand anders te plaatsen. Als ik zelf een package gebruik zal ik voor plaatsing toch eerst de code daarin grondig doorlopen.

Het verschil tussen IPKG en packages is dat IPKG verder gaat dan packages en een centrale 'repository' kent, waardoor adequaat versiebeheer mogelijk is. (en da's nou precies een probleem met packages...)

Met images bedoelt men plaatjes, niets meer en niets minder. In twee smaken, 16x16 px. en 32x32 px.. Waar je ze vandaan haalt? Waar niet....

Als ik je vragen zo lees, kan ik je alleen maar adviseren om toch eerst eens grondig deze materie te gaan bestuderen alvorens potentieel bloedlinke dingen met een shell-script te willen gaan proberen (en da's nog cgi-script ook, daar komt nog meer bij kijken).

Studeer ze!

Wizjos
Wizjos.


DS409+    4 x WD10EADS DSM 4.2-3243       [TEST]
DS214play 1 x WD20EARX DSM 6.1.4-15217-3  [PROD]
DS1513+   5 x WD80EFZX DSM 6.1.4-15217-5  [PROD]
RT1900ac               SRM 1.1.6-6931-1   [PROD]


Is RAID hetzelfde als een backup?
Goeie schijven voor je NAS? Neem Western Digital!


 

Photostation 5 albumnamen zichtbaar (simpele thema)

Gestart door spannowBoard Photo Station / Photos

Reacties: 0
Gelezen: 1736
Laatste bericht 26 oktober 2011, 12:56:43
door spannow
Simpele statische 5-pagina "website" werkt gewoon niet

Gestart door DSGebruikerBoard Web Station

Reacties: 13
Gelezen: 1562
Laatste bericht 07 januari 2023, 15:46:02
door Babylonia
simpele backup

Gestart door seomanBoard Data replicator & overige backupsoftware

Reacties: 21
Gelezen: 5197
Laatste bericht 14 februari 2018, 17:18:19
door seoman
Simpele vraag

Gestart door jacobusBoard Synology DSM 5.1 en eerder

Reacties: 11
Gelezen: 5298
Laatste bericht 25 maart 2013, 20:44:07
door Internetter
Simpele back-up DS723+ naar USB externe schijf in DSM7.2.1

Gestart door TwanVenloBoard Synology DSM 7.2

Reacties: 19
Gelezen: 1098
Laatste bericht 14 september 2024, 20:32:45
door racefiets