• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Frage zu VNC-Autostartskript

Fluke82

Newbie
Hallo,
ich verwende Suse Linux Professional 8.2,9.1,9.3 und 10 auf verschiedenen Servermaschinen. Kürzlich habe ich in den Weiten des WWW das folgende Autostartskript für den VNC-Server (root-Desktop) gefunden:

Code:
#!/bin/sh
PATH=/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/opt/kde3/bin
# for xauth
export HOME=/root
case "$1" in
  start)
    echo -n "Starting Xvnc-TightVNC User:root on Desktop :1"
    cd /usr/bin
    nohup startx -- /usr/bin/X11/Xvnc :1 -geometry 1024x768 -depth 16 2> /var/log/xvnc-err.log > /var/log/xvnc.log &
    echo "."
  ;;
  restart)
    /etc/init.d/vncstartroot stop
    /etc/init.d/vncstartroot start
  ;;
  stop)
    echo -n "Stopping Xvnc-TightVNC User:root on Desktop :1"
    rm -R /tmp/.X11-unix/X1
  ;;
  *)
    echo "Usage: /etc/init.d/vncstartroot {start|stop|restart}"
    exit 1
    ;;
esac
exit 0

Dieses habe ich dann auch in das Verzeichnis "/etc/init.d" kopiert uns mittels des in Yast integrierten Runlevel-Editors im Runlevel 5 eingebunden. Soweit sogut.
Ich möchte gleich vorweg dazusagen, dass ich in Sachen Linux-Scripting ein absoluter Neuling bin.
Nun zu meinem ersten Problem. Was ich noch etwas unschön finde ist, dass beim stoppen des Skripts der eigentliche Prozess nicht automatisch beendet wird. Hat jemand eine Idee wie man das vorliegende Skript dahingehend noch verbessern könnte?

Dann gleich zu meinem zweiten Problem.
Ich würde gerne auch noch einen 2. VNC-Desktop diesmal jedoch eines normalen Benutzers (also nicht root!) automatisch beim Systemstart mitstarten lassen. Dazu habe ich das vorligende Skript nochmals kopiert und in eine 2. Datei eingefügt und wie folgt abgeändert:

Code:
#!/bin/sh
PATH=/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/opt/kde3/bin
# for xauth
export HOME=/home/normaleruser
case "$1" in
  start)
    echo -n "Starting Xvnc-TightVNC User:vmplayer on Desktop :2"
    cd /usr/bin
    nohup startx -- /usr/bin/X11/Xvnc :2 -geometry 1024x768 -depth 16 2> /var/log/xvnc-err.log > /var/log/xvnc.log &
    echo "."
  ;;
  restart)
    /etc/init.d/vncstartnormaleruser stop
    /etc/init.d/vncstartnormaleruser start
  ;;
  stop)
    echo -n "Stopping Xvnc-TightVNC User:vmplayer on Desktop :2"
    rm -R /tmp/.X11-unix/X2
  ;;
  *)
    echo "Usage: /etc/init.d/vncstartnormaleruser {start|stop|restart}"
    exit 1
    ;;
esac
exit 0

Dieses habe ich dann wiederrum mittels des Runlevel-Editors in den Runlevel 5 eingebunden. Ausgeführt wird das abgeänderte Skript auch problemlos und der Desktop des "normalen" Users wird auch wie gewünscht gestartet. Jedoch besitzt dieser Benutzer nun auf einmal auch "root" Berechtigungen. Um dies zu überprüfen habe ich eine Console geöffnet und den Befehl "who am i" ausgeführt daraufhin wurde mir "root pts/2" angezeigt. Wie kann man es erreichen, dass auch die Berechtigungen noch zum geladenen Desktop (also zum User) passen und dieser nicht automatisch mit root Berechtigung ausgestattet wird?
Hat da jemand eine Idee dazu woran das liegen könnte?

Dazu sei noch erwähnt, dass ich sowohl beim Benutzer "root" wie auch beim Benutzer "normaleruser" jeweils die Desktopumgebung "KDE" in die Datei "xstartup" im Unterverzeichnis "~/.vnc" mittels der Befehlszeile "startkde&" eingetragen habe.

Ich hoffe, dass mir hier jemand bei meinen beiden Problemen weiterhelfen kann.

Gruß an alle und Danke im voraus.
Fluke82
 
OP
F

Fluke82

Newbie
Siehe da eines der beiden Probleme habe ich selbstständig lösen können.
Damit der VNC-Desktop des normalen Benutzers auch mit dessen Rechte gestartet wird (also ohne automatisch "root"-Berechtigungen zu bekommen!) muss das Autostartskript folgendermaßen aussehen:

Code:
#!/bin/sh
PATH=/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/opt/kde3/bin
# for xauth
export HOME=/home/normaleruser
case "$1" in
  start)
    echo -n "Starting Xvnc-TightVNC User:normaleruser on Desktop :2"
    cd /usr/bin
    #User "normaleruser" mit Root-Berechtigungen als VNC-X11-Desktop und ohne Passworteingabe starten
    #nohup startx -- /usr/bin/X11/Xvnc :2 -geometry 1024x768 -depth 16 2> /var/log/xvnc-err.log > /var/log/xvnc.log &
    #User "normaleruser" ohne Root-Berechtigungen als VNC-X11-Desktop und ohne Passworteingabe starten
    su -l normaleruser -c "nohup startx -- /usr/bin/X11/Xvnc :2 -geometry 1024x768 -depth 16 2> /var/log/xvnc-err.log > /var/log/xvnc.log &"
    #User "normaleruser" ohne Root-Berechtigungen als "herkömmlichen" VNC-Desktop mit Passwortabfrage starten (meiner Ansicht nach aber langsamer)
    #su -l normaleruser -c "/usr/X11R6/bin/vncserver"
    echo "."
  ;;
  restart)
    /etc/init.d/vncstartnormaleruser stop
    /etc/init.d/vncstartnormaleruser start
  ;;
  stop)
    echo -n "Stopping Xvnc-TightVNC User:normaleruser on Desktop :2"
    rm -R /tmp/.X11-unix/X2
  ;;
  *)
    echo "Usage: /etc/init.d/vncstartnormaleruser {start|stop|restart}"
    exit 1
    ;;
esac
exit 0

Vielleicht hat bzw. hatte jemand hier ja ähnliche Probleme damit wie ich und kann damit nun ebenfalls was anfangen.

Gruß
Fluke82
 

rolle

Guru
Als Anregung zur Erweiterung und zum Stoppen des Prozesses sieh Dir mal folgendes an:
http://www.linux-club.de/viewtopic.php?t=44634
http://www.linux-club.de/viewtopic.php?t=42963
 
Oben