NEWS
iobroker Rechter zum schreiben / ausführen auf dem Raspberry
-
@thomas-braun sagte in iobroker Rechter zum schreiben / ausführen auf dem Raspberry:
getfacl /opt/iobroker/iobroker-data/files/0_userdata.0/test.csv
-
Sigi71@WBH-RasPi4:/opt/iobroker/iobroker-data/files/0_userdata.0 $ getfacl /opt/iobroker/iobroker-data/files/0_userdata.0/test.csv getfacl: Removing leading '/' from absolute path names # file: opt/iobroker/iobroker-data/files/0_userdata.0/test.csv # owner: iobroker # group: iobroker user::rw- group::r-x #effective:r-- group:iobroker:rwx #effective:rw- mask::rw- other::r--
MOD-EDIT: Code in code-tags gesetzt!
Aber das sagt doch das owner der iobroker ist, und der auch schreiben und lesen darf. Warum geht es dann nicht?
ACL - noch nie gehört oder in die Richtung was installiert
-
@wierer-sigi sagte in iobroker Rechter zum schreiben / ausführen auf dem Raspberry:
ACL - noch nie gehört oder in die Richtung was installiert
ACLs werden im Zuge der Installation von iobroker eingeführt.
Näheres siehe hier: -
@thomas-braun sagte in iobroker Rechter zum schreiben / ausführen auf dem Raspberry:
habe mir den Link zu ACL angesehen und versucht zu verstehen.
Die Liste wird von oben nach unten abgearbeitet.
wenn ioborker als User und Group eingetragen ist, würde ich in der Ausgabe von getfacl keinen Eintrag sehen der dies überstimmt - correct?
-
Zuerst zieht die 'mask'. Deswegen sieht man deren Werte auch in der einfachen Ausgabe von ls.
Durch die group mask 'rw' wird der Gruppe 'iobroker' auch wieder das x-Recht genommen. Also effektiv können Gruppenmitglieder von iobroker nur lesen und schreiben. Andere Gruppen können nur lesen.
Der user 'iobroker' kann schreiben und lesen, alle anderen user können nur lesen. -
@thomas-braun
OK aber dann sollte ja der iobroker an die Datei was anfügen können. Ist ja nur schreiben.Oder verwendet das Block "Datei schreiben" einen anderen Nutzer / Rechte als das Blocky "setze Ergebnis - Datei mit: Dateiname"
-
@wierer-sigi sagte in iobroker Rechter zum schreiben / ausführen auf dem Raspberry:
als das Blocky "setze Ergebnis - Datei mit: Dateiname"
setzt nur den Wert einer Variable.
Das Schreiben wird sich in der js Funktion verstecken.was steht denn da drin?
-
das verbirgt sich hinter der JS-Funktion mit Ergebnis "Datei" ...
const fs = require('fs'); switch(mode) { case 'r': return fs.readFileSync(Dateiname, 'utf8'); case 'w': return fs.writeFileSync(Dateiname, Daten); case 'a': return fs.appendFileSync(Dateiname, Daten); default: return 'Parameter mode muss "r", "w" oder "a" sein'; }
-
@wierer-sigi sagte in iobroker Rechter zum schreiben / ausführen auf dem Raspberry:
case 'w': return fs.writeFileSync(Dateiname, Daten);
case 'a': return fs.appendFileSync(Dateiname, Daten);da sind die Schreibbefehle
wodurch die sich vom Block "Datei schreiben" unterscheiden muss ein js-Kundiger sagen -
- Nie direkt in iobroker-data/files schreiben
- Dort immer die ioBroker Funktionen nutzen. Sonst sind die Metadaten nicht vorhanden oder falsch
- Nur über die ioBroker Funktionen bekommt man auch Events
- Braucht man das alles nicht, sucht man sich eine Stelle außerhalb von iobroker-data/files
- Die Sandbox verhindert schreiben/ändern von Daten in den Verzeichnissen eh (mit node:fs)
Es kommt also darauf an, was man vor hat.
-
@haus-automatisierung sagte in iobroker Rechter zum schreiben / ausführen auf dem Raspberry:
Es kommt also darauf an, was man vor hat.
Dann wohl besser in /home/iobroker hantieren.
War ja auch meine erste Wahl. -
Danke für Eure Hilfe.
Habe die JS-Funktion, gelöscht und neu eingegeben - ohne Änderung.
Dann ging es wieder, vlt. hat sich da ein Fehler beim wiederherstellen des Backups eingeschlichen