j-a-n / raspberrymatic-addon-rmupdate

Addon for RaspberryMatic to (auto) update system
GNU General Public License v3.0
34 stars 10 forks source link

Dateirecht bei Addon-Installation/Update #8

Closed hobbyquaker closed 6 years ago

hobbyquaker commented 6 years ago

Hallo, hast Du ne Ahnung wie es dazu https://github.com/hobbyquaker/RedMatic/issues/16 kommt? Ein User mit der id 2000 existiert ja garnicht, macht Dein Addon eine Addon-Installation irgendwie anders als der "normale" Weg über das CCU WebUI? Ist das was was Du fixen kannst oder sollte ich in RedMatic einfach noch ein chown root:root ins install-script packen?

jens-maus commented 6 years ago

Da das rmupdate addon die Addon-Archive vollkommen unabhängig des WebUI eigenen Mechanismus installiert und dafür auch keine chroot Umgebung verwendet bewegt es sich IMHO auf teilweise gefährlichen Wegen.

Was das Problem hier angeht, so sollte das tar Archiv an folgender stelle

https://github.com/j-a-n/raspberrymatic-addon-rmupdate/blob/master/addon/lib/rmupdate.tcl#L1640

nicht nur einfach ausgepackt werden sondern es muss sichergestellt werden da immer root:root der Besitzer der Dateien ist. Am besten einfach hier die Option --no-same-owner hinzufügen damit die Dateien dann auch root gehört.

j-a-n commented 6 years ago

Ich habe die vorgeschlagene Änderung in die Version 1.12.3 aufgenommen. Ein Sicherheitsgewinn durch ein chroot sehe ich jedoch nicht, da die Addons und deren Init-Skripte sowieso unter root-Rechten laufen.

jens-maus commented 6 years ago

@j-a-n Ich würde dir raten bzgl. des tar Aufrufes folgendes Konstrukt zu verwenden:

https://github.com/jens-maus/RaspberryMatic/blob/master/buildroot-external/overlay/base/bin/install_addon#L11

D.h. neben --no-same-owner auch noch --no-same-permissions und die verwendung von lediglich -xf OHNE -z option (dies erlaubt dann prinzipiell in Zukunft auch addons als .tar.bz2 oder ähnliches anzubieten da so tar automatisch das Archivformat herausfindet und entsprechend entpackt.

Was die Verwendung von chroot für die Installation der Addons angeht, so sehe ich da in der Tat zumindest einen kleinen Sicherheitsgewinn, da somit verhindert wird das Addons Schabernack im restlichen filesystem vornehmen (auch wenn dies nicht ganz verhindert werden kann).

Was spricht denn eigentlich dagegen das du direkt das /bin/install_addon verwendest bzw. vom rmupdate aufrufst und damit dann automatisch den chroot-Mechanismus nutzt? IMHO sollte rmupdate statt selbst die addons zu installieren einfach /bin/install_addon verwenden.