NEWS
SSH Befehl Berechtigung durch ioBroker
-
Hallo. Meine Kamera speichert via ftp Bilder mit auf der SSD des ioBrokers in einer separaten Partition. Separat, damit ioBroker niemals überläuft...
Damit die Partition sich regelmäßig von älteren Dateien reinigt, habe ich
den Befehl.sudo find /Kamera/Eingang* -mtime +65 -exec rm {} \;
Wenn ich diesen Befehl über Putty mit Benutzer pi auslöse, funktioniert das. Wenn ich den Befehl über Blockly auslösen lasse, gehts nicht.
Der Ordner Kamera in eigener Partition ist mit Absicht an dieser Position, da ich wöchentlich ein komplettes rsync Backup erstellen lasse, ohne den Inhalt der Kamera Bilder.
Ich vermute, dass der Benutzer ioBroker nicht die Berechtigung des Ordners besitzt. Ich habe Tage verbracht, das ftp Zeugs zum laufen zu bekommen, daher frage ich vorher nach.pi@Pi400:/media $ sudo ls -l total 12 drwxrwxr-x 6 ftpuser kameradir 4096 May 9 12:22 Kamera pi@Pi400:/media/Kamera $ sudo ls -l total 4228 drwxrwxr-x 2 instar ftpuser 2260992 Jul 15 09:07 Eingang drwxrwxr-x 2 instar ftpuser 16384 Aug 26 2021 lost+found drwxrwxr-x 2 instar ftpuser 2043904 Jul 15 09:07 Mobil
pi@Pi400:/media $ cat /etc/group kameradir:x:1010:instar,pi,iobroker,ftpuser ftpuser:x:1001:instar,pi,iobroker,kameradir iobroker:x:1009:pi,asterisk
pi@Pi400:/media/Kamera $ getfacl /media/Kamera getfacl: Removing leading '/' from absolute path names # file: media/Kamera # owner: ftpuser # group: kameradir user::rwx group::rwx other::r-x
Linux ist ja super, aber trotz etlichen Anleitungen raffe ich die Berechtigungssache nicht. chown, chmod, Benutzer, Gruppen.
Furchtbar.
Danke für eure Unterstützung. -
-
Benutzer iobroker ist doch schon in der Gruppe kameradir.
Ich würde eher sagen, Benutzer iobroker darf kein sudo ausführen, also
sudo usermod -aG sudo iobroker
Aber mal Grundsätzlich, du möchtest das der Befehlen regelmäßig ausgeführt wird? Ich würde das von ioBroker entkoppeln und via cronjob ausführen.
-
-
@darkiop
OK. Jetzt habe ich endlich das Blockly bisschen verstanden und könnte Befehle mit ausführen. ZACK kommen die Fachleute, keinesfalls Sudo Befehle im ioBroker.
Na dann gehe ich gerne euren Vorschlag.
Habe geprüft: Cron ist installiertsudo crontab -e
Diese erste Zeile steht schon drin, also nicht von mir. Die zweite habe ich hinzugefügt um zu testen ob der Befehl da drin ausgeführt wird. Na klar, kam nichts dabei raus. Ich habe viele beispiele gefunden, aber keine, die solche Befehle ausführen:
*/5 * * * * /usr/local/bin/wifi-check > /var/log/emoncms/wificheck.log 2>&1 */2 * * * * sudo find /Kamera/Eingang* -mtime +65 -exec rm {} \;
Könnt ihr mir hier helfen, wie das ausgeführt werden kann?
Und nochwas: Muss ich DAS DA noch ausführen zur Sicherheit?
Was wird sich nach Ausführen für mich in der iobroker Benutzung ändern / einschränken?sudo usermod -aG sudo iobroker
-
@mika-0 sagte in SSH Befehl Berechtigung durch ioBroker:
Und nochwas: Muss ich DAS DA noch ausführen zur Sicherheit?
Nein.
Man macht es so (ähnlich):
https://www.developerfiles.com/delete-files-on-linux-using-a-scheduled-cron-job/
Und lass den root oder sudo aus dem Spiel, die crontab läuft mit den Rechten des users der sie angelegt hat. Und da der pi in der Gruppe 'kameradir' ist muss der mit seinen Rechten da auch löschen können.
Also NICHT
sudo crontab -e
verwenden, das ist die Crontab vom root. Haste nix zu suchen.
-
@thomas-braun DANKE! Läuft. Also Neuling zwar ein Kampf aber es läuft!
Jetzt muss ich leider noch fragen, warum nach meinem ganzen hin und her die Datei:
sudo crontab -e
leer ist. Vorher stand ja diese eine Zeile drin. Nu is leer, trotz Neustart. Gut, dass ich diese Zeile vorhin gepostet habe. Soll ich die Zeile
*/5 * * * * /usr/local/bin/wifi-check > /var/log/emoncms/wificheck.log 2>&1
da wieder eintragen oder einfach Finger weg lassen?
Gelöscht oder überschrieben habe ich die Zeile definitiv nicht.Noch eine Frage: Für was wird denn dann der exec Block im Blockly genutzt wenn nicht für meine Befehle die ich mit machen wollte? Vielleicht habt ihr ja 1, 2 Beispiele für mich. Danke
-
@mika-0 sagte in SSH Befehl Berechtigung durch ioBroker:
da wieder eintragen oder einfach Finger weg lassen?
Kann ich dir nicht sagen.
Ich weiß ja nicht was emoncms damit treibt.Mein crontab für root ist auch leer.
Für was wird denn dann der exec Block im Blockly genutzt wenn nicht für meine Befehle die ich mit machen wollte?
Für Befehle aus dem direkten ioBroker-Umfeld. Der 'iobroker' ist in seinen Rechten eingeschränkt und darf nicht viel außerhalb von /opt/iobroker anstellen.