X-Anwendung so starten, das sie vom User nicht beendet werden kann



  • Hallo,

    is es möglich, eine X-Anwendung so zu starten, dass sie vom User, dem die X-Session "gehört", nicht beendet werden kann? Also auch nicht per kill oder z.B. über die KDE-Systemüberwachung. Wenn ja, wie geht man da üblicherweise vor?

    Es geht um eine Art Internetcafe-Verwaltung. Auf den Clients soll ein Tool laufen, das die jeweils aufgelaufene Onlinezeit und -kosten anzeigt, und über das die Station ggf. auch gesperrt werden soll.

    Danke!



  • Jansen schrieb:

    Also auch nicht per kill oder z.B. über die KDE-Systemüberwachung.

    Fuer den Teil sollte es reichen, die Anwendung mit root-Rechten zu starten. <edit>Oder allgemein unter einem anderen User-Account</edit>

    Der Rest sollte auch einfach sein: Bau einfach keine Moeglichkeit ein, die Anwendung zu beenden. Wie Du das machst, haengt vom verwendeten Toolkit ab. Oder verwendest Du direkt die Xlib?



  • SG1 schrieb:

    Fuer den Teil sollte es reichen, die Anwendung mit root-Rechten zu starten.

    Hast du noch einen Tip zur Hand, wie ich das per Script o.ä. mache? Idealerweise sollte das ja beim Start von X automatisch erfolgen.

    Mit dem Weglassen bzw. Deaktivieren der "Schliessen"-Optionen hast du natürlich recht, das sollte nicht allzu schwierig sein. Zur Programmierung benutze ich Kylix, also prinzipiell QT.



  • Jansen schrieb:

    SG1 schrieb:

    Fuer den Teil sollte es reichen, die Anwendung mit root-Rechten zu starten.

    Hast du noch einen Tip zur Hand, wie ich das per Script o.ä. mache? Idealerweise sollte das ja beim Start von X automatisch erfolgen.

    Gute Frage. Prinzipiell mit sudo oder mit chmod +s. Vorher noch mit xhost dem entsprechenden User erlauben, ueberhaupt auf der X-Server zuzugreifen. Jetzt muesste man nur noch wissen, welche Datei _nach_ dem Start des X-Servers ausgefuehrt wird, und da bin ich leider gerade ueberfragt.



  • Scripts können IIRC kein EUID == 0 haben

    mfg



  • gast__ schrieb:

    Scripts können IIRC kein EUID == 0 haben

    Wieso nicht? Und wo hab hier irgendwer geschrieben, dass man das machen soll?



  • Nochmals danke für die Tips. Ich habe es jetzt so gelöst (SUSE 9.0):

    Als Client benutze ich zbdesk, gestartet wird per /etc/init.d/boot.local.
    In /etc/X11/xinit/xinitrc rufe ich xhost +localhost auf, damit root Zugriff auf die X-Session bekommt.

    Falls jemand einen Fehler sieht oder eine bessere Lösung hat würde ich mich über entsprechende Hinweise freuen.


Anmelden zum Antworten