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.