NEWS
[gelöst]"Exec" in JS funktioniert nicht mehr
-
Liebe Community,
ich hoffe, dass ihr mir helfen könnt. Ich habe ein Script, welches ich schon seit langem laufen habe, worin ein Exec ausgeführt wird:
exec('sudo etherwake -i eth0 XX:XX:XX:XX:XX:XX');
Hier wird über etherwake ein WOL ausgeführt.
Nun habe ich gestern ein Update für Node.js von 8.x auf 10.18.1 durchgeführt.
Dafür habe ich mich an folgende Anleitung gehalten.
Unter anderem habe ich auch folgenes ausgeführt, was wenn ich das richtig vertstanden habe die Rechte von root auf iobroker ändert!?:curl -sL https://iobroker.net/fix.sh | bash -
Nun befürchte ich, dass durch diesen "fix" ich keine Berechtigung mehr habe ein sudo etherwake auszuführen, da er dafür über den "iobroker" Benutzer keine Berechtigung hat.
Da ich jetzt kein Linux-Spezialist bin, weiß ich nicht, wie ich das behebe, sodass ich das wieder ans Laufen bekomme.Vielleicht könnt ihr mir dabei helfen das zu fixen
Vielen Dank & Grüße
Modjo
-
Okay habe das Problem lösen können.
Ich habe anhand dieses Videos unter /etc/sudoers.d eine custom_iobroker Datei angelegt mit folgendem Inhalt:iobroker ALL=(ALL) NOPASSWD: /sbin/etherwake
Nun hat der Benutzer iobroker auch wieder die Berechtigung über JS ein EXEC auf etherwake zu machen.
Viele Grüße
Modjo
-
Ob dein Befehl mit Iobroker funktioniert kannst du auf der Befehlszeile wie folgt testen
su Iobroker -c BEFEHL
Eine wirklich umfangreiche Beschreibung auf deutsch zum Thema Sudo ohne Passwort ist hier zu finden
https://wiki.ubuntuusers.de/sudo/Konfiguration/
Stichwort ist sudoers
Auch Iobroker nutzt selbst diese Technik. Da gibt es eine eigene Datei mit allen. Bevorzugten Befehlen (müsste irgendwo bei /etc/sudoers in der Nähe liegen