ForumShell-script in KDE Start integrieren
Thomas Schoke – Dienstag, 31. Januar 2006 13:30 Uhr

Beim Start von KDE, also wenn der Rechner bereits RL5 erreicht hat, soll ein Shell script mit einigen Befehlen ablaufen, die root Rechte benötigen. Das Script dient zur Anpassung eines Toshiba NB Screens.

Das Script darf erst starten, wenn die grafische Oberfläche initialisiert ist. Deshalb kann ich das Script weder per insserv einbauen (wäre zu früh da KDE noch nicht läuft) und kann es auch nicht in den KDE autostart Ordner des Users packen (weil die Rechte fehlen).

Hat jemand eine Idee, mit welchem Trick ich das Script automatisch starten lassen kann, ohne dem KDE User per sudo Rechte zu geben? Ich habe das Gefühl, das es eine ganz naheliegende und einfache Lösung gibt aber ich sehe wohl den Wald vor Bäumen nicht.

Dank & Grüße
Thomas

3 Antworten
Benjamin Quest – Dienstag, 31. Januar 2006 16:42 Uhr

setuid ??? Oder ist das zu heikel?
Gruß
b.

Ottfried Meyer – Dienstag, 31. Januar 2006 20:08 Uhr

Hallo,

meines Wissens dürfen unter Linux Scripte nicht setuid laufen.
DAS wäre DIE Sicherheitslücke !!! ;)

Im Script /opt/kde/kde/bin/startkde wird ein Programm namens “kcheckrunning”
benutzt, um den Startzustand von KDE zu testen.

Nun brauchst Du nur ein Script mit einer while-Schleife und einem sleep
drin zu bauen, welches uid root ist und mit kcheckrunning den Zustand
von KDE pollt. Diese Skript kann von einem beliebigen Script unterhalb
von /etc/init.d/rc.5/. gestartet werden.
Liefert kcheckrunning zurück, dass KDE läuft, führt es die anderen
Scripte aus und beendet sich anschließend.
Polling ist zwar weder elegant noch performant aber ich fahre ja auch nicht
mit ‘nem Porsche Brötchen holen… ;O)

Viel Erfolg!
mcc

Tobias Hunger – Dienstag, 31. Januar 2006 21:16 Uhr

Der Xserver hat sein eigenes Skript, das er nach dem Start abarbeitet. Bei Debian ist das /etc/X11/Xsession… keine Ahnung wie das bei RL5 heißt. Das wird mit den Rechten des X-Servers gestartet (also wohl root) und läuft erst, wenn X oben ist. Wäre das was, oder brauchst Du für Dein Skript wirklich das gesamte KDE?

Wenn das Start Skript des X-Servers eine Lösung ist und kein /etc/X11/Xsession existiert, dann wirst Du im Verzeichnis Deines X Desktop Managers (xdm, gdm, kdm, whatever) suchen. Dort liegt auf jeden Fall ein Skript (das bei Debian dann halt /etc/X11/Xsession aufruft).

Wenn das keine Lösung sein sollte, dann kommst Du wahrscheinlich nicht um sudo rum.

Hasso Schulz – Mittwoch, 01. Februar 2006 15:09 Uhr

Moin!

Willst Du nur unter KDE diese Anpassungen durchführen, oder soll auch der X-Server selbst davon “profitieren”?

Wenn’s nur KDE betrifft:

Unter /home/user/.kde/Autostart/ kannst Du ansonsten Dein Skript hinterlegen; es wird dann beim Einloggen des Users automatisch ausgeführt. Im Skript selbst müssen dann mittels “sudo ” die Befehle ausgeführt werden.

Gruß,

Hasso