NEWS
Mit welchen Rechten läuft "EXEC" in Blockly?
-
Moin, wenn ich in der Console auf meinem RASPI
sudo -su iobroker echo "Test" >/home/pi/status/status_f.html
eingebe, wird wie erwartet eine Datei angelegt.
Wenn ich den Befehl als Text "iobroker echo "Test" >/home/pi/status/status_f.html" an einen Exec-Block übergebe, passiert nix
Weder mit noch ohne sudo.Fehlen da irgendwelche Einstellungen?
Kommando "exec" erlauben ist im JS-Adapter angehakt und geht prinzipiell, da andere Blocklys mit EXEC laufen.
E.
-
@eubecker Na mit dem iobroker Nutzer. Hast ja schon rausgefunden
Logischerweise darf der nicht in das Home-Verzeichnis von pi schreiben. Such ein Ziel außerhalb der Home-Verzeichnisse für deine Daten.
Mit sudo am besten ganz vergessen. Man könnte dem iobroker Nutzer über die Konfiguration von sudo einzelne Befehle freigeben. Aber das würde ich lassen. Schon gar nicht gehört der in die Gruppe sudo. Und für das, was Du da vor hast, ist es ja komplett unnötig.
Linux Grundlagen anschauen. Habe ich lang und breit alle erklärt
-
@haus-automatisierung sagte in Mit welchen Rechten läuft "EXEC" in Blockly?:
Logischerweise darf der nicht in das Home-Verzeichnis von pi schreiben
da bin ich voll bei dir.
aber wieso schreibt@eubecker sagte in Mit welchen Rechten läuft "EXEC" in Blockly?:
wenn ich in der Console auf meinem RASPI
sudo -su iobroker echo "Test" >/home/pi/status/status_f.htmleingebe, wird wie erwartet eine Datei angelegt.
??
-
@homoran Ja, genau deshalb frage ich
Und da ich nicht der Linux-Profi bin, wo sollte ich hinschreiben? nach /var-irgendwas?
-
Gerade gesehen, die Datei" gehört trotz sudo dem User PI
-
@Homoran @eubecker
Das ist ganz einfach.
Der zweite Teil des Kommandos wird nicht mehr über die per sudo temporär erlangten Rechte sondern mit den Rechten des ausführenden Users ausgeführt.Siehe
echad@chet:~ $ sudo -su iobroker echo "Test" >/home/echad/test.html echad@chet:~ $ ls -la test.html -rw-r--r-- 1 echad echad 5 Feb 12 17:18 test.html echad@chet:~ $
-
Was ist eigentlich das Ziel von der Turnübung?
Ich würde einfach in das /home vom iobroker schreiben und diese Datei einfach vom eigentlichen Ziel verlinken. -
@thomas-braun sagte in Mit welchen Rechten läuft "EXEC" in Blockly?:
Der zweite Teil des Kommandos wird nicht mehr über die per sudo temporär erlangten Rechte sondern mit den Rechten des ausführenden Users ausgeführt.
richtig!
das sudo ist für den UserSwitch.dann dürfte doch iobroker im home des pi nichts anlegen können
-
@homoran sagte in Mit welchen Rechten läuft "EXEC" in Blockly?:
dann dürfte doch iobroker im home des pi nichts anlegen können
Kann und tut er ja auch nicht. Der 'iobroker' führt das echo-Kommando aus, das wird dann per > umgeleitet und ab da ist wieder der 'pi' der ausführende.
Bzw. in meinem Beispiel der 'echad'.Edit:
Hier sieht man es vielleicht noch besser:echad@chet:~ $ sudo -u iobroker whoami && whoami iobroker echad echad@chet:~ $
-
wofür wird die html-Datei denn gebraucht, und wieso soll die in dieses spezielle Verzeichnis?
-
Sie soll "nur" Zwischenparkplatz sein, um sie per FTP auf einen Webserver zu schieben.
Also IOBroker-Home nehmen? Das wird auch nicht bei einem Update mal gereinigt?E.
-
@eubecker sagte in Mit welchen Rechten läuft "EXEC" in Blockly?:
Also IOBroker-Home nehmen? Das wird auch nicht bei einem Update mal gereinigt?
Ja.
Nein, die /home-Verzeichnisse werden nicht von updates angefasst, die 'Updates' liegen in anderen Verzeichnissen. -
Das klappt schon mal, dann kann ich mich mit dem FTP beschäftigen
-
@eubecker Ich hatte Probleme, die lokalen Backups aus dem ioBroker LXC-Container weggeschafft zu bekommen. Habe dann mit rsync die Files auf einen anderen debian Server per cron job verschieben lassen. Vielleicht als Alternative zu FTP.
3 5 * * * sshpass -p "***********" rsync -a /opt/iobroker/backups/* martin@debian:/mnt/backup/Martin/iobroker/ 3 5 * * * sshpass -p "***********" rsync -a /opt/iobroker/log/*.log.gz martin@debian:/mnt/backup/Martin/iobroker/Logs/
-
Puh, der Server steht nicht bei mir, das wird dann stressiger, erst mal (S)-FTP anschauen
-
@eubecker Da wäre rsync aber einfacher. Da brauchst Du nur einen SSH-Tunnel und gut.
Gruss, Jürgen
-
@wildbill "Nur" ist relativ, wenn man keine Ahnung hat
-
@eubecker Naja, für SFTP (FTP bitte nicht verwenden, ist unsicher!) musst Du ja auf der Gegenseite einen Port öffnen, im Regelfall Port 22, da SFTP ja auf SSH aufsetzt. Bei den meisten Webspaces wird ein SSH-Zugang bereits enthalten und aktiviert sein, um ihn zu adminstrieren?! Und wenn Port 22 schon offen ist dann kannst Du Dich vermutlich auch direkt per ssh user@domain.xy dort anmelden. Also kannst Du somit von Deinem Rechner aus auch per rsync direkt Dateien dorthin schieben. Per Script dann auch automatisiert.
Gruss, Jürgen
-
@wildbill Mache mir auch für Dateizugriffe aus der Windows-Welt nur noch selten die Mühe, Samba auf einem Linux-Server einzurichten. WinSCP reicht für die meisten Fälle aus...
-
@martinp sagte in Mit welchen Rechten läuft "EXEC" in Blockly?:
WinSCP reicht für die meisten Fälle aus...
ja, wenn man
- mit dem richtigen user zugreift
- nicht mit Win Editoren arbeitet