Fritz.Box: wie lasse ich ein script ein script schreiben? begrenzter Befehlsvorrat...

Diskutiere Fritz.Box: wie lasse ich ein script ein script schreiben? begrenzter Befehlsvorrat... im Software Forum Forum im Bereich Hardware & Software Forum; Mahlzeit erstmal. Ich habe mir in ner Fritz.Box nen telnet zugang eingebaut. War auch net so schwer, einfach n fake telnet.image eingebügelt...
  • Fritz.Box: wie lasse ich ein script ein script schreiben? begrenzter Befehlsvorrat... Beitrag #1
Robelli

Robelli

Bekanntes Mitglied
Dabei seit
18.04.2004
Beiträge
496
Reaktionspunkte
0
Ort
Salzgitter
Mahlzeit erstmal.
Ich habe mir in ner Fritz.Box nen telnet zugang eingebaut. War auch net so schwer, einfach n fake telnet.image eingebügelt, feddich. Nun habe ich allerdings das Problem, das ich nach jedem telnet-login ne Fehlermeldung auf der ersten Seite im Webinterface erzeuge, a'la "nicht unterstützte Firmwareänderung"

dazu ein einfacher Eintrag via

Code:
echo 'usr/sbin/telnetd -l /sbin/ar7login' > /var/flash/debug.cfg

Der Befehl "echo" schreibt aber nur diese eine Zeichenkette in die debug.cfg.
(ne Art autoexec)
Jetzt habe ich die Möglichkeit, mit den folgenden 6! Befehlen diese o.g. Fehlermeldung zu löschen.

Code:
major=$(grep tffs /proc/devices)
tffs_major=${major%%tffs}
rm -f /var/flash/fw_attrib
mknod /var/flash/fw_attrib c $tffs_major 87
echo -n "" > /var/flash/fw_attrib
rm -f /var/flash/fw_attrib

auch soweit kein Problem.

Da der Mensch allerdings von Natur aus faul ist, möchte er ja alles bequemer haben. Ich möchte die 6 Befehle in ein einziges Script einbinden und dauerhaft in die Box stopfen. So bräuchte ich am Ende meiner Sitzung nur noch das Script ausführen lassen. Das Problem ist allerdings, das ich eine Datei nicht dauerhaft erzeugen kann, nach einem Neustart ist diese dann weg. Die einzige Datei die ich dauerhaft bearbeiten kann, ist die debug.cfg. Und das auch nur mit vi, cat oder echo (der Befehlsvorrat in der Fritz.Box ist begrenzt).

Ich möchte nun das ich in der debug.cfg beim Start der Box die o.g. Befehle in ein script nach /var/ kopiere und das Attribut des neu erzeugten scripts auf "Ausführbar" setzen.

ausprobiert habe ich es schon mit 6x echos, da blieb nur die letzte Zeile stehen, mit Trennungs- &&, da kam nur Salat raus und bei cat-Aufrufen müsste ich ein verschachteltes Cat mit 2x EOF aufrufen. (eines um in die debug zu schreiben und eines was aus der debug aufgerufen wird) Und das iss man schlecht. Ausserdem füllt mir cat die Variablen von Major gleich mit den Zahlen auf und schreibt die statisch in mein script, was ich voll doof finde.

Also wenn jemand ne Idee hat, her damit! Ich habe vielleicht auch noch die möglichkeit mit nem tftp-server im /tmp zu arbeiten.

Quellen zu den Vorgängen:

http://wiki.ip-phone-forum.de/software:ds-mod:development:manipulation_erkennung

http://www.wehavemorefun.de/fritzbox/Starten_von_telnetd#Workaround_Fritz.21Box_SL

Gruss Robert
 
Zuletzt bearbeitet:
  • Fritz.Box: wie lasse ich ein script ein script schreiben? begrenzter Befehlsvorrat... Beitrag #2
N

nic_power

Senior Moderator
Dabei seit
27.12.2000
Beiträge
7.838
Reaktionspunkte
2
Hallo,

Code:
echo 'usr/sbin/telnetd -l /sbin/ar7login' > /var/flash/debug.cfg
Der Befehl "echo" schreibt aber nur diese eine Zeichenkette in die debug.cfg.
(ne Art autoexec)

Korrekt. Muss auch so sein, da Du mit ">" arbeitest. Möchtest Du was an eine bestehende Datei anhängen, musst Du ">>" verwenden.

Nic
 
  • Fritz.Box: wie lasse ich ein script ein script schreiben? begrenzter Befehlsvorrat... Beitrag #3
Robelli

Robelli

Bekanntes Mitglied
Dabei seit
18.04.2004
Beiträge
496
Reaktionspunkte
0
Ort
Salzgitter
Guten Morgen.

Habe vorhin mal den folgenden Versuch gestartet...
Code:
echo 'echo 'major=$(grep tffs /proc/devices)' > /var/reset' >> /var/flash/debug.cfg

Da war ich dann allerdings irgendwo drin fest gebacken,
das erste Zeichen war dann kein '#', sondern ein '>', schon merkwürdig.
Ich glaub, echo kann auch net so richtig verschachteln, denn wenn ich
Code:
echo 'echo 'man''
einticker, gibt der mir "echo man" aus, ohne Anführungszeichen. Egal, heute Abend gehts weiter... werd vielleicht mal n Versuch mit nem TFTP machen...

Robert
 
  • Fritz.Box: wie lasse ich ein script ein script schreiben? begrenzter Befehlsvorrat... Beitrag #4
Robelli

Robelli

Bekanntes Mitglied
Dabei seit
18.04.2004
Beiträge
496
Reaktionspunkte
0
Ort
Salzgitter
So - habe mich nochmal davor gesetzt und n bischen was probiert...

Habe via tftp nach /var/tmp ne debug.cfg hochgeschaufelt, die via cat in die /var/flash/debug.cfg transferiert. Nach nem Neustart kam ich via telnet nicht mehr in die Box lol. Also das ganze Spielchen von vorn, starttelnet.image reingebügelt, via telnet rein und mal nen grab der files gemacht.

attachment.php


sieht doch eigentlich ganz tutti aus in der debug.cfg, aber warum iss meine reset-file wieder nur eine Zeile gross? Habe ich da irgendwo noch nen Denkfehler? Was mich auch noch verwundert iss das ich nach der ersten cat-Ausgabe von debug.cfg am Ende der letzten Zeile kein Return habe, zu sehen an dem '#' hinter 'reset'. Fehlt da vielleicht noch n open/close file?

Gruss Robert
 

Anhänge

  • puba.JPG
    puba.JPG
    74,7 KB · Aufrufe: 30
  • Fritz.Box: wie lasse ich ein script ein script schreiben? begrenzter Befehlsvorrat... Beitrag #5
ZockerM

ZockerM

Verdienter Ex-Mod
Dabei seit
25.11.2000
Beiträge
2.722
Reaktionspunkte
0
Ort
/root
Hi,

das mit dem echo ist mir im Moment auch unerklärlich. Hier unter einer Ubuntu funktioniert das auch mit dem einfachen Komma.
Aber wenn du nur so begrenzte Befehle zur Verfügung hast, würde ich zuerst mal testen, ob der Befehl chmod vorhanden ist.
Die richtige Zeile würde lauten 'chmod +x /var/reset'

gruß ZockerM
 
  • Fritz.Box: wie lasse ich ein script ein script schreiben? begrenzter Befehlsvorrat... Beitrag #6
Robelli

Robelli

Bekanntes Mitglied
Dabei seit
18.04.2004
Beiträge
496
Reaktionspunkte
0
Ort
Salzgitter
Guten Abend.

Ja, das mit dem chmod +x geht, um ne Datei ausführbar zu machen, absolut kein Problem. Nur halt, das der mir nur eine Zeile da rein schreibt, iss mir noch unerklärlich. Sach mal, oder muss ich da n '#!/bin/sh' einbinden? Habe das schon paarmal wo gesehen, nur weiss ich net wozu das gut sein soll (ausführung in ner eigenen shell?)

Robert
 
  • Fritz.Box: wie lasse ich ein script ein script schreiben? begrenzter Befehlsvorrat... Beitrag #7
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
Sach mal, oder muss ich da n '#!/bin/sh' einbinden? Habe das schon paarmal wo gesehen, nur weiss ich net wozu das gut sein soll (ausführung in ner eigenen shell?)
Versuchs einfach mal, das sagt dem script welche Shell er verwenden soll, normalerweise blickt das ein Linux schon, aber sicher ist sicher.
 
Thema:

Fritz.Box: wie lasse ich ein script ein script schreiben? begrenzter Befehlsvorrat...

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben