Neue Datei in /usr/www/avm/

leseratte10

Mitglied
Mitglied seit
23 Apr 2012
Beiträge
403
Punkte für Reaktionen
2
Punkte
18
Hallo zusammen,

ich möchte auf meiner Fritzbox eine neue lua-Datei im Ordner /usr/www/avm/ anlegen (welche und warum tut nix zur Sache).
Aber der "normale" Weg mit
Code:
# mount -o bind /var/asdfg/qwertz.lua /usr/www/avm/system/qwertz.lua
schlägt fehl, denn die Datei gibts ja noch nicht.

Code:
mount: mounting /var/asdfgh/qwertz.lua on /usr/www/avm/system/qwertz.lua failed: No such file or directory

Und anlegen kann ich die auch nicht, denn /usr/www/ ist read-only:

Code:
# touch /usr/www/avm/system/qwertz.lua
touch: /usr/www/avm/system/qwertz.lua: Read-only file system

Wie bekomm ich da ne Datei rein? (Bitte keine Fragen zum Sinn oder Unsinn dieser Aktion)

Leseratte10
 
Moins

Das geht/ist einfacher als du denkst, du brauchst nur ein bischen beschreibbaren Speicher.
Mach in diesen eine Kopie des AVM Webspace, zum Beispiel mit tar.
Umschalten auf diesen kannst du dann wie hier beschrieben: KlickKlack
 
Du näherst Dich offenbar an ... :)

Mit einem bind-Mount kann man nur bereits existierende Dateien/Verzeichnisse überlagern. Wenn Du das also realisieren willst (das ginge auch mit /usr/sbin oder einem anderen Verzeichnis), dann müßtest Du eine Kopie des kompletten Verzeichnisses an einer beschreibbaren Stelle anlegen. Da die anderen Dateien (nach dem Mounten) auch nicht mehr mit Tricks wie einem SymLink erreichbar sind, mußt Du tatsächlich den gesamten Verzeichnisinhalt rekursiv kopieren, bevor Du dann dieses Verzeichnis mit einem bind-Mount überlagerst.

Manchmal ist es aber tatsächlich einfacher, wenn man sich ein neues Root-FS baut und dort dann - wenn man die Dateien selbst nicht gleich mit in das SquashFS einbauen will - entsprechende Symlinks für die neuen Dateien anlegt. Wenn man so weit ist, daß man ein bind-Mount ausführen könnte, kann man auch das Root-FS "dumpen" und es nach entsprechender Änderung wieder einspielen.

Aber wenn ich mir die Frage gestatten darf, was willst Du denn am Ende überhaupt erreichen? :mrgreen: (Antwort nicht wirklich nötig, konnte mir die unerwünschte Frage nur nicht verkneifen.)

Wenn meine Vermutung bzgl. Deiner Motive stimmen sollte: Es gibt auch eine Lösung ohne Symlink, die basiert auf diesem Projekt und ist tatsächlich so auch enthalten im Original. Die passenden Optionen reichen schon aus für den gewünschten Effekt.
 
Zuletzt bearbeitet:
Ach, was mir gerade noch einfällt...
Irgendein AVM Prozess (multid?) löscht einfach meine selbstangelegte /tmp/securetty.
Code:
/var/tmp # df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                13632     13632         0 100% /
tmpfs                    57204     13436     43768  23% /var
tmpfs                    57204        56     57148   0% /dev
/dev/sda1              7771892   2622384   4754716  36% /var/media/ftp/SanDisk-Cruzer-01
tmpfs                    57204     13436     43768  23% /etc/shells
[COLOR=#ff0000]df: /etc/securetty\040(deleted): No such file or directory[/COLOR]
tmpfs                    57204     13436     43768  23% /etc/profile
https://192.168.178.9/webdav
                       7771840   3017152   4754688  39% /var/media/ftp/Onlinespeicher
/var/tmp #
Deswegen neige ich zu der Aussage: Auf mount -o bind kann sich nicht immer verlassen werden
 
Irgendein AVM Prozess (multid?) löscht einfach meine selbstangelegte /tmp/securetty.
Wenn, dann aber nicht gezielt unter dem Namen, sondern eher im Ergebnis einer allgemeinen Säuberung ... oder es ist keine AVM-Komponenten, sondern die Busybox. Die enthält nämlich als einzige diesen Dateinamen und daß er irgendwo aus Teilstücken zusammengesetzt wird, um seine Existenz zu verschleiern, wäre eher ungewöhnlich.

Auf mount -o bind kann sich nicht immer verlassen werden
Wenn es einen anderen Weg gibt (ist in der Regel aufwändiger), sollte man sogar auf sie verzichten ...

In der AVM-Firmware wird häufiger mal mit 'grep "xyz" /proc/mounts' gearbeitet, früher (ob das heute auch noch so ist, weiß ich nicht) gab das auch schon mal Kuddelmuddel, wenn da anstatt eines Treffers auf einmal zwei auftraten. Also sollte man diese Form (schon aus Vorsicht) nur dann verwenden, wenn die zu erwartende neue Zeile in /proc/mounts nichts mit einer schon vorhandenen gemein hat.

Ein Kommando wie:
Code:
if grep "$MNTPATH" /proc/mounts > /dev/null; then
(aus /etc/hotplug/udev-mount-sd)
kann eben - in Abhängigkeit von dem Inhalt von $MNTPATH - auch mal unerwartete Ergebnisse liefern (wenn man zusätzliche "mounts" hat), denn das Gesuchte kann ja offensichtlich an jeder beliebigen Stelle in der (Pseudo-)Datei stehen, da sind keine Einschränkungen vorhanden. Ob das an dieser Fundstelle jetzt irgendwie noch anders abgesichert wird (also der Kontext des o.a. Kommandos), spielt auch keine entscheidende Rolle, es ist nur ein Beispiel für das, was ich meine.
 
Ich muß mich mal selbst korrigieren. Der angesprochene "utelnetd" ist bei der 6360 in 06.0x offenbar gar nicht mehr vorhanden. Ich habe bei einer kurzen Inventur nur in der 06.08 und der 06.10 für die 6490 einen gefunden. Die 6360 habe ich schon eine Weile nicht mehr, ich sollte mich künftig wieder erst im Dateisystem rückversichern, bevor ich solche Behauptungen aufstelle ... sorry.

Ich habe mich nur vom Inhalt des dsld bei der 06.05 für die 6360 in die Irre führen lassen:
Code:
/var/run/utelnetd.pid
starting utelnetd on interface wan0
/sbin/utelnetd
stopping utelnetd
und glatt versäumt, die Existenz von /sbin/utelnetd zu verifizieren, weil ich ihn auf der 6490 gefunden hatte und dorther schon kannte.
 
Huch, mit so vielen Antworten hatte ich gar nicht gerechnet.

Im Moment habe ich keinen USB-Stick an der Fritzbox (der USB-Port dient zur Stromversorgung meines Raspberry Pi), wenn das aber die einfachste Lösung für das Problem ist, werde ich das ausprobieren.

Wie kommst du auf Telnet? Was hat die Existenz eines Telnet-Daemons damit zu tun, dass ich eine Datei in /usr/www/avm/ anlegen möchte? Der Telnet-Server ist ja schon vorhanden.
 
Wie kommst du auf Telnet? Was hat die Existenz eines Telnet-Daemons damit zu tun, dass ich eine Datei in /usr/www/avm/ anlegen möchte? Der Telnet-Server ist ja schon vorhanden.
Ich habe nur in Deine Signatur geschaut und mich - wenn ich mich nicht irre - an eine zurückliegende Kommunikation per PM erinnert. Wenn Du das gar nicht warst, vergiss den Einwurf ... wenn Du den Telnet-Zugang schon lange hast, ist es ja auch gut.

Wenn jemand ständig "fragt nicht, wofür es gut ist" schreibt, kann man ja auch mal auf die Idee kommen, daß da vielleicht ein anderer Verzeichnisname angegeben wurde.

Wenn es um eine vollkommen andere FRITZ!Box als Deine 6360 geht, hast Du wohl vergessen, ein paar zusätzliche Details zu erwähnen.

EDIT:
Ok, Du warst das tatsächlich, am 11.10.2014 ... daß Du aber einer der ganz wenigen bist (da reicht eine Hand um das abzuzählen und auch dann noch, wenn der Besitzer der Hand im Sägewerk arbeitet), die das komplette Skript erhalten hatten, das wußte ich tatsächlich nicht mehr.

Bleibt immer noch die Empfehlung, das FS zu extrahieren, mit Freetz zu entpacken (unsquashfs, ist eine lzma-Kompression) und nach der Modifikation wieder zusammenzupacken (mksquashfs).

Das dann in die inaktive Filesystem-Partition (den Kernel ebenfalls kopieren, wenn der nicht in beiden gleich ist) und Du kannst einfach mit "linux_fs_start" umschalten, wenn Du beim Modifizieren des Filesystems Späne gemacht hast (das über die EVA kriegst Du hin).

Wenn man dann das Modifizieren mit einem Plan angeht und gleich die richtigen Symlinks ins Root-FS einbaut, fällt der ganze "bind-Mount"-Quatsch komplett flach. Solange Du in der anderen Partition das originale System hast, kann Dir praktisch nichts passieren - Du hast immer einen Rückweg zu einem funktionierenden System.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.