Page 1 of 1
Dateiablage aus node-red nicht möglich
Posted: 10 May 2025, 16:37
by tim26
Hallo zusammen,
ich habe einen seltsamen Fehler auf einem neuen System Revpi4 bookworm 12 und node-red 4.09.
Ich habe einen bestehenden node-red flow eingespielt der auf älteren Systemen einwandfrei läuft und normalerweise unter '/home/pi' Dateien ablegt. Auf diesem System läuft das aber auf Fehler:
Mit viel rumprobieren habe ich herausgefunden, dass ich im '/home/pi' von node-red aus keinen Zugriff habe und auch alle anderen Verzeichnisse gesperrt sind.
Wenn ich pwd über node-red eingebe dann kommt als home Verzeichnis '/var/lib/revpi-nodered'. Das ist auch das einzige verzeichnis auf das ich aus node-red Zugriff habe.
Direkt auf der bash des RevPi funktioniert aber alles wie gewohnt ich habe als home Verzeichnis '/home/pi' und kann ganz normal Dateien, Verzeichnisse anlegen, Rechte vergeben und auch 'sudo' verwenden.
'sudo' geht über node-red im exec-node auch nicht : "der Schalter new privileges ist gesetzt und verhindert als root auszuführen... es sieht so aus als würden Sie in einem Container arbeiten, passen Sie die Konfiguration an."
Nachdem ich nicht weiß welche Containersoftware und ob überhaupt Container weiß ich auch nicht wo ich was anpassen kann.
Könnt Ihr mir bitte weiterhelfen?
Grüße
Tim
Re: Dateiablage aus node-red nicht möglich
Posted: 14 May 2025, 08:21
by RevPiModIO
Hallo Tim!
Mit dem neuen Bookworm Image haben wir die Sicherheit von Node-RED verbessert. Der Dienst läuft nun unter einem Systembenutzer namens „nodered“. Dieser Benutzer hat Schreibrechte für sein Home-Verzeichnis `/var/lib/revpi-nodered`, aber nicht für andere Verzeichnisse.
Zusätzlich verwenden wir systemd-Sandboxing, um den Prozess weiter zu isolieren. Dies verhindert, dass Erweiterungen der Berechtigungen (sudo) innerhalb der Node-RED-Umgebung verwendet werden können.
Es ist möglich, dass unsere Sicherheitsmaßnahmen die Funktionalität von Node-RED für einige Benutzer einschränken. Daher sind wir auf dein Feedback angewiesen, um sicherzustellen, dass es für alle Benutzer geeignet ist.
Könntest du uns bitte kurz beschreiben, welche Aktionen du in deinen Flows auf dem Gerät ausführst? Insbesondere interessieren uns die Dateien, die du schreiben möchtest, und die Befehle, für die du sudo-Berechtigungen benötigst.
Vielen Dank,
Sven
Re: Dateiablage aus node-red nicht möglich
Posted: 22 Jan 2026, 15:36
by Thomas Sommer
Hallo Sven,
ich möchte dieses Thema aufnehmen. Ich habe ebenfalls die Anforderung
Daten bzw. Dateien zu schreiben.
Ich verwende einen RevPi Connect 4 und realisiere mit node red ein spezielles
Messsystem. Die generierten Messergebnisse können mitgespeichert werden
und ereignisgetriggert als csv – Datei abgelegt. Die erzeugten csv – Dateien sollen
bei Bedarf auf einen USB – Stick exportiert und vom lokalen Speicher entfernt werden.
In der aktuellen Testphase lege ich die csv Dateien mit einem auf Zeitstempel
basierenden und automatisch generierten Filenamen im lokalen Speicher ab.
Es wird bei bedarf der Ordner Logger erzeugt, in diesem befinden sich dann die
einzelnen files. (/tmp/pi/logger)
Bei bedarf wird ein beliebiger USB – Speichermedium am revPi angeschlossen
und erkannt. Ich generiere in node red den neuen Pfad des USB – Stick und
stelle diesen als file Destination zur Verfügung. (/media/pi/variable usb Kennung)
Die beschriebenen Funktionen laufen gut und zufriedenstellend, diverse
USB – Speichermedien werden erkannt korrekt eingelesen und zugewiesen.
Daten können ohne Probleme gelesen und geschrieben werden.
Ich habe jetzt allerdings die hier angeführte Situation, dass mir bei node red
die Rechte fehlen auf den USB – Stick zu schreiben. Somit funktioniert zwar
meine Loggerfunktion wunderbar allerdings kann ich die Daten nicht auf einen
externen Speicher für eine weitere unabhängige Verarbeitung schreiben.
Best Grüße
Thomas
Re: Dateiablage aus node-red nicht möglich
Posted: 23 Jan 2026, 09:52
by RevPiModIO
Moin Thomas!
Das liegt an der erweiterten Systemabsicherung von Node-RED. Du kannst diese in unserem Cockpit-Plugin ganz einfach deaktivieren.
Navigiere dafür in unser Cockpit zum Menüpunkt "Node-RED" und schalte die "Erweiterte Systemabsicherung" ab.
Gruß
Sven
Re: Dateiablage aus node-red nicht möglich
Posted: 26 Jan 2026, 11:33
by Thomas Sommer
Hallo Sven,
vielen Dank für deine Rückmeldung.
Ich bin deinem Ratschlag gefolgt und habe die „Erweiterte Systemabsicherung“
deaktiviert, im ersten Moment hatte ich dadurch aber leider keinen Erfolg.
Ich habe mir dann als nächsten Schritt die „nodered.service“ Datei vorgenommen und die
user – Einträge angepasst.
Ich habe in dieser Datei
/lib/systemd/system/nodered.service
folgende Einträge geändert
Zuordnung des Besitzers und der Gruppe
user=pi
group=pi
Pfad in welchem geschrieben werden darf, dies ist auch der Pfad in welchem
das USB – Speichermedium gemounted wird.
ReadWritePaths=/media/pi
Nun funktioniert es einwandfrei und ich kann UUID oder LABEL unabhängig in das
automatisch erkannte Speichermedium schreiben.
Beste Grüße
Thomas
Re: Dateiablage aus node-red nicht möglich
Posted: 29 Jan 2026, 13:09
by tboehler
Hallo Thomas,
nur eine kurze Anmerkung: Die Dateien unter /usr/lib bzw. /lib werden in der Regel von der Paketverwaltung verwaltet und sollten nicht von Nutzern abgeändert werden. Somit werden deine Änderungen möglicherweise mit dem nächsten Update verloren gehen.
Um systemd Services richtig abzuändern gibt es mehrere Möglichkeiten. Da du die Service Datei
abändern möchtest nutzt du bestenfalls den Befehl "sudo systemctl edit nodered.service" und machst deine Änderungen an der Datei die in deinem Editor erscheint. Diese nutzt die Datei unter /usr/lib/systemd/system/nodered.service als Vorlage und ändert die von dir angegebenen Optionen ab. So läufst du nicht Gefahr, dass deine Änderungen mit einem Paketupdate verloren gehen.
Mit "sudo systemctl daemon-reload" und "sudo systemctl restart nodered.service" dürften deine Änderungen dann auch jeweils von systemd und Node-RED übernommen werden.
Die Dokumentation für diese Art der Änderung findest du in der man page "systemctl(1)", oder auch hier online:
https://manpages.debian.org/bookworm/sy ... .1.en.html. Die Dokumentation für sogenannte "Drop-In" Ordner für systemd, also die Methode die ich oben beschrieben habe, findest du in der man page "systemd.unit(5)", oder online hier:
https://manpages.debian.org/bookworm/sy ... .5.en.html.
Viel Glück!