Root Rechte und Unterordner


  • Hallo,


    führ das Skript als root-user über SSH aus, und schau welche Berechtigungen gesetzt wurden ( ls -la /tmp/ ).


    mit " set -x " am Anfang vom Skript (also nach dem Shebang) bekommst du auf der Shell zusätzliche Debugging-Informationen während der Skriptausführung.

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • Hallo Tom


    Ergibt das oben beschriebene keinen Resultat.


    Zitat

    führ das Skript als root-user über SSH aus, und schau welche Berechtigungen gesetzt wurden ( ls -la /tmp/


    Code
    [B]-rw-rw-r-- 1 tomcat tomcat    92 Nov 21 16:43 cqueuerechte.sh[/B]


    Manuell als Root funktioniert es.
    Somit wären die Rechte eigentlich vorhanden.



    Das Bash sieht wie folgt aus:

    Bash
    #!/bin/bash
    set -x 
    chmod o+x /tmp/cqueuerechte.sh
    /tmp/cqueuerechte.sh


    Code
    [2017-11-21 16:43:47,036] INFO  [CQ_Modulrechte]  
    [2017-11-21 16:43:47,037] INFO  [CQ_Modulrechte]  
    [2017-11-21 16:43:47,037] INFO  [CQ_Modulrechte] 1


    Wie können wir das Problem fixen.
    So wie ich sehe, ist das ein Problem auf der Starface. Ist es möglich einmal mit einem Entwickler anzuschauen.


    Gruss
    CH

    Besuche den Online Store für Starface Module:
    http://store.itc-b.ch - +41 55 55 2 55 55

    Einmal editiert, zuletzt von ITC-B ()

  • Hi Tom,
    hi CH,


    ich habe das gleiche Problem. Programmiertes Modul mit zertifiziertem Script funktioniert auf der "Programmier-Anlage", nach Export und Import auf eine andere Starface gibt die Funktion ExecuteAsRoot nur noch 1 als Rückgabewert zurück. kein Output, kein ErrorOutput. Zusätzlich erscheint im error-Log der Starface die Fehlermeldung

    Code
    ERROR de.starface.core.component.security.socketcommunication.AuthReportListener Could not parse authentication-report: <85>Nov 22 15:14:29 localhost sudo:   tomcat : TTY=unknown ; PWD=/usr/share/tomcat6 ; USER=moduleuser ; COMMAND=/bin/bash -s


    Im Modul habe ich drei verschieden Scripte, die über ExecuteAsRoot laufen. Alle geben das gleiche zurück.

    Viele Grüße,


    Andreas Stein
    IT Fabrik Systemhaus GmbH & Co. KG


    STARFACE Excellence PLUS Partner

  • Kann ich bestätigen. Ich bin noch einen Schritt weiter gegangen:


    1. Modul auf Anlage A programmiert -> Shell Script via ExecuteAsRoot im Modul funktioniert (Rückgabewert 0)
    2. Modul auf Anlage B importiert -> Shell Script via ExecuteAs im Modul funktioniert nicht (Rückgabewert 1)
    3. Modul auf Anlage B editiert und mittels "Resource Update" Button die *.sfsc Datei neu hochgeladen -> kein Veränderung Rückgabewert 1)
    4. Modul auf Anlage B editiert, Ressource gelöscht, neue Ressource angelegt, gleiches Script wieder hochgeladen, Ressource in der Funktion wieder ausgewählt -> FUNKTIONIERT



    PS:
    Die Fehlermeldung, die ich im error-Log bekommen habe, hat mit dem Problem nichts zu tun. Die wird zwar von der Funktion ausgelöst, wird aber nur durch eines meiner Script verursacht und taucht auch auf "Anlage A" auf.

    Viele Grüße,


    Andreas Stein
    IT Fabrik Systemhaus GmbH & Co. KG


    STARFACE Excellence PLUS Partner

    2 Mal editiert, zuletzt von andreas.stein ()

  • Hallo,


    ich habe mir nochmal die Sache näher angeschaut. Entschuldigt bitte die lange Wartezeit.


    Zum Testen der Berechtigungen habe ich folgendes Skript angelegt und signieren lassen:



    Ablauf:
    Wenn python oder bash skript bereits existieren, dann lösche sie - damit weiß ich, dass die dateien immer "neu" sind die ich verwende.
    Erstelle einen Python-Skript, welches auf STDOUT eine Ausgabe macht
    Erstelle ein Bash-Skript. Dieser Skript setzt die Berechtigung "ausführbar" beim Python-Skript. Bei erfolg, schreibt er eine Meldung nach STDOUT.
    Ich mache mein Bash-Skript ausführbar
    Ich führe das Bash-Skript aus
    Ich führe das Python-Skript aus, leite aber seine STDOUT-Ausgabe nach STDERR um (Fehlerausgabe)


    In der STARFACE als Root-Skript importiert, kommt folgende Meldung im Log:


    Code
    [2017-12-04 17:59:36,136] DEBUG [ExecuteAsRoot] Executing root-script : 49e05916-b242-49c9-a904-6d76d4b2cc33 
    [2017-12-04 17:59:36,188] INFO  [NewFunction] STDERR: hello world
    [2017-12-04 17:59:36,189] INFO  [NewFunction] STDOUT:permissions set
    [2017-12-04 17:59:36,189] INFO  [NewFunction] Result Code:0


    Alle Ausgaben an der richtigen Stelle (Python-Ausgabe nach STDERR, Bash-Ausgabe nach STDOUT)


    Danach ergänze ich das Modul, und führe über die normale Execute-Methode das Python-skript erneut aus (um das +x bit für "andere" zu testen), diesmal ohne Umleitung nach STDERR:


    Code
    [2017-12-04 18:12:45,349] DEBUG [ExecuteAsRoot] Executing root-script : 49e05916-b242-49c9-a904-6d76d4b2cc33 
    [2017-12-04 18:12:45,393] INFO  [NewFunction] STDERR: hello world
    [2017-12-04 18:12:45,393] INFO  [NewFunction] STDOUT:permissions set
    [2017-12-04 18:12:45,393] INFO  [NewFunction] Result Code:0 
    [2017-12-04 18:12:45,393] INFO  [NewFunction] now executing the python file as moduleuser... 
    [2017-12-04 18:12:45,395] DEBUG [Execute] Executing Shell Command: /usr/bin/python /tmp/helloWorld.py 
    [2017-12-04 18:12:45,786] DEBUG [Execute] Execution took 251 ms 
    [2017-12-04 18:12:45,786] INFO  [NewFunction] STDOUT:hello world


    Danach habe ich das Modul auf einer frisch installierten (und auf die 6.4.3.28 upgedateten) STARFACE importiert. Die Signaturprüfung ist erfolgreich (Modul ist grün, Modul kann instanziert und ausgeführt werden). Es sieht allerdings so aus, als würde die Datei nicht korrekt geparst werden. Die Bash meldet nämlich, dass das Python-Skript überhaupt nicht existiere:



    Dies bestätigt ein "ls -la /tmp/". Was meine Vermutung noch verstärkt, ist dass keines meiner Fehlermeldungen im Skript bis in das STDERR des Moduls hochgereicht wird.


    (also die hier - $? gibt das exit code des letzten Befehls zurück:
    if [ $? != 0 ]; then
    echo "creating python script failed" 1>&2
    exit 1
    fi

    )


    Würde das Parsen korrekt ablaufen, müsste das Skript schon ganz oben abbrechen und eine Fehlermeldung ausgeben.


    Aus welchem Grund dies passiert, muss ich oder ein Entwickler noch untersuchen. Ich kippe den Task dazu schonmal bei der Entwicklung ein.


    Decken sich hier unsere Testergebnisse?


    Viele Grüße,


    Tom

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

    4 Mal editiert, zuletzt von TomAnson ()

  • Hallo Tom,


    soweit ja. Das Problem nach dem Import in die Frische Anlage fängt aber schon hier an:


    Code
    [2017-12-04 18:26:57,823] DEBUG [ExecuteAsRoot] Executing root-script : 49e05916-b242-49c9-a904-6d76d4b2cc33 
    [2017-12-04 18:26:57,835] INFO  [NewFunction] STDERR:  
    [2017-12-04 18:26:57,835] INFO  [NewFunction] STDOUT: 
    [2017-12-04 18:26:57,835] INFO  [NewFunction] Result Code:1


    Result Code müsste ja 0 sein.


    Ich denke hier liegt das eigentliche Problem. Das passiert auch mit einfachsten Scripts wie

    Bash
    #!/bin/bash
    reboot


    Ach ja: Man braucht übrigens nicht einmal eine zweite Anlage zum nachstellen. Gleiches Problem tritt schon auf, wenn ich auf der selben Anlage mein Modul aus der Library lösche und neu importiere.

    Viele Grüße,


    Andreas Stein
    IT Fabrik Systemhaus GmbH & Co. KG


    STARFACE Excellence PLUS Partner

    2 Mal editiert, zuletzt von andreas.stein ()

  • Zitat

    Ach ja: Man braucht übrigens nicht einmal eine zweite Anlage zum nachstellen. Gleiches Problem tritt schon auf, wenn ich auf der selben Anlage mein Modul aus der Library lösche und neu importiere.



    Hallo Zusammen,
    Ich habe es auch noch einmal getestet. Gleiches Resultat


    Gruss
    CH

  • Hallo zusammen,


    der Fehler, dass Root-Skripte nach dem Import eines Moduls nicht ausgeführt werden konnten, ist ab der nächsten Release gefixt.


    VG


    Tom

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

    Einmal editiert, zuletzt von TomAnson ()

Jetzt mitmachen!

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