script soll sich bei Erfolg selbst löschen - ist das möglich bzw. legitim ?

  • Hi,


    Hab hier ein Script laufen welches ich wenn es erfolgreich durchgelaufen ist löschen möchte, kann man das auch gleich im selben Script tun ?
    Also einfach am Ende ein rm scriptname
    und wenn da nun danach noch ein exit Befehl wäre würde das auch noch Geltung haben (obwohl sich das Script zuvor ja mittels rm schon selbst gelöscht hat) ?



    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Was für ein Art Malware soll das denn werden? :computertod :mua


    Es könnte so funktionieren, wie beschrieben, einfach mal probieren.
    Shell-Skripte werden, soviel ich weiss, eingelesen und dann im RAM ausgeführt, ein Zugriff auf die Datei erfolgt dann nicht mehr.
    Man kann ein laufendes Skript auch editieren, ohne dass die Änderung was ausmacht (unbeabsichtigt schon ausprobiert). Warum soll löschen dann nicht gehen?

    Gruss
    SHF



  • und wenn da nun danach noch ein exit Befehl wäre würde das auch noch Geltung haben (obwohl sich das Script zuvor ja mittels rm schon selbst gelöscht hat) ?


    Gruss
    Bert


    Sollte gehen, da unter Linux Dateien erst dann wirklich gelöscht werden wenn es keinen Prozess mehr gibt der noch auf die Datei zugreift. Und da ja die Shell noch auf die Datei zugreift bleibt sie noch solange erhalten bis die Shell das Dateihandle schließt.


    MfG

    Einmal editiert, zuletzt von BooBoo ()

  • Nichts gegen so eine Frage, aber was hat dich davon abgehalten, es einfach zu probieren? Mit $0 hast du den richtigen Dateinamen auch schon gegeben, so dass der nicht fest verdrahtet werden muss.


    Lars

  • Hi,


    Danke an euch,


    Nein keine Malware :D


    Nun ja ich glaub sogar ich hab es schonmal so gemacht vor langer Zeit, aber was ich wirklich wissen wollte ist ob das zulässig ist und
    euren Antworten nach ist es das, somit bau ich das nun so ein.


    Die Sache worum es geht will ich euch auch nicht vorenthalten.
    Ich starte hier automatisch per mdev Eintrag sobald man nen USB-Stick einstöpselt ein Script auf der Maschine welches wiederum ein weiteres Script
    das auf dem USB-Stick liegt auf die Maschine kopiert und dann ausführt was auch wunderbar klappt.


    Jedoch kommt es ab und zu vor das sich dieses vom USB-Stick kopierte Script öfter als einmal ausführt
    das fange ich auch mittels PID auslesen usw. ab, aber es sieht so aus als ob das Script erst erneut startet wenn es schonmal fertig durchgelaufen ist
    und da wurde ja das Pidfile schon wieder gelöscht und somit hilft das alles nix.


    Nun dachte ich mir vielleicht hilfts wenn ich das Script ganz einfach am Ende löschen lasse dann dürfte es ja wohl nicht mehr erneut ausgeführt werden.


    Ich weis das sowas mit udev schöner zu lösen wäre aber ich hab hier nur mdev auf dieser Maschine (geht nicht um den VDR in meiner SIG).


    Also Danke nochmal ich denke das passt dann schon so.


    EDIT !
    Funktioniert wie gewünscht !



    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

    Einmal editiert, zuletzt von Bert ()

  • Die Sache worum es geht will ich euch auch nicht vorenthalten.
    Ich starte hier automatisch per mdev Eintrag sobald man nen USB-Stick einstöpselt ein Script auf der Maschine welches wiederum ein weiteres Script
    das auf dem USB-Stick liegt auf die Maschine kopiert und dann ausführt was auch wunderbar klappt.

    Ich bin da zwar nicht der Experte, aber irgendwie riecht das nach einer Sicherheitslücke. :S


    Nun dachte ich mir vielleicht hilfts wenn ich das Script ganz einfach am Ende löschen lasse dann dürfte es ja wohl nicht mehr erneut ausgeführt werden.

    Da wäre ich nicht so sicher.
    Wenn das Problem schon beim doppelten ausführen des ersten Scripts per mdev liegt, bringt das löschen nichts.


    In dem Fall würde sich ein Lockfile anbieten, das bestehen bleibt und beim beenden des Scripts aktualisiert wird. Beim Start dann abprüfen, ob das Lockfile älter als x Minuten ist und ggf die Bearbeitung abbrechen.

    Gruss
    SHF


  • Hi SHF,


    Zitat

    Ich bin da zwar nicht der Experte, aber irgendwie riecht das nach einer Sicherheitslücke.

    Bin auch kein Experte aber wer weiss is durchaus möglich.

    Zitat

    Da wäre ich nicht so sicher.
    Wenn das Problem schon beim doppelten ausführen des ersten Scripts per mdev liegt, bringt das löschen nichts.

    Nun ja das habe ich ausgeschlossen (hab ja immer Logging mit drin) da hätte ich das erkennen müssen.


    Zitat

    In dem Fall würde sich ein Lockfile anbieten, das bestehen bleibt und beim beenden des Scripts aktualisiert wird. Beim Start dann abprüfen, ob das Lockfile älter als x Minuten ist und ggf die Bearbeitung abbrechen.

    Ja mit Lockfile hatte ich zuvor schon probiert noch bevor ich die PID Abfrage eingebastelt habe allerdings nicht mit Abfrage wie alt das Lockfile ist - von daher Super Idee :] Danke
    Werd ich einbauen wenns mal wieder doppelt starten sollte (aber vielleicht klappts ja jetzt wies ist, die Zeit wirds zeigen).



    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Es ist insofern ein Sicherheitsproblem, da ohne Überprüfung ein Programm aus einer externen Quelle gestartet wird. Und das auch noch automatisch. Ich würde die zu erwartenden Aktionen auf dem Gerät selbst definieren, und dann eine Datei auf dem Stick nach dem Aktionsnamen untersuchen und nur das Ausführen, was wirklich gewollt ist. Und falls man Parameter übergeben können soll, muss der Wertebereich validiert werden.
    Und wichtig ist auch der Userkontext, in dem die Aktionen ausgeführt werden (müssen).


    Lars

  • Hi mini73,


    ok Danke für die Tipps.



    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!