NEWS
Anpassen /etc/sudoers.d/iobroker in Docker
-
Liebe Community,
ich habe meinen Iobroker per Docker Compose containerisiert, was auch echt super läuft. Bei der Erstellung des Containers, habe ich über die Variable "PACKAGES" etherwake (für WOL) als zusätzliches Tool installiert. Daraufhin habe ich dem JavaScript Adapter "enable command exec" aktiviert.
In meinem Script rufe ich unter anderem folgendes auf:exec('sudo etherwake -i eth0 XX:XX:XX:XX:XX:XX');
Wenn ich mich per
docker exec -ti iobroker /bin/bash
auf den Container aufwähle kann ich den etherwake Befehl absetzen und er startet per Wake on Lan den angegebenen PC.
Innerhalb des Scriptes reagiert er aber nicht darauf, weshalb ich davon ausgehe, dass hier ein Berechtigungsproblem vorliegt, da Iobroker ja nicht als root läuft.
Um hier Abhilfe zu schaffen gibt es ja die Datei/etc/sudoers.d/iobroker
welche man anpassen kann, um die Rechte wie folgt zu erweitern:
iobroker ALL=(ALL) NOPASSWD: /usr/sbin/etherwake
Sobald ich dies eintrage, funktioniert es auch per Iobroker JavaScript.
Nun zu dem eigentlichen Problem:
Da es sich hier um einen Container handelt, ist die "/etc/sudoers.d/iobroker" ja flüchtig und liegt nicht auf dem Container Volume.
Hier muss ich es also irgendwie schaffen die Docker Compose Yaml so anzupassen, dass er beim Starten die "/etc/sudoers.d/iobroker" erweitert, nachdem das Installationsscript diese erstellt hat.Habt ihr hier vielleicht Ideen?
Vielen Dank vorab!
Gruß
Modjo -
Bin nicht sicher, ob das in Deinem gewünschten Anwendungsfall hilft, aber Du könntest mal den Linux Control Adapter ausprobieren.
Mittels dieses Adapters kann man Linux Commands an den Host schicken. In den Settings kann man auch "sudo" aktivieren.