Pinguinbild

L i n u x - S c h u l e
Bildschirmverteilung mit VNC unter Linux

Homepage | Server | Linux-Clients | Win9x-Clients | WinNT-Clients | Win3.11-Clients | Dos-Clients | Utilities

I n h a l t

Der Start des Xvnc-Servers
Der Start des Viewers durch den Lehrer
Der Start des Viewers bei den Schülern
Eine VNC Verbindung per Mausklick starten
Eine VNC Passwortdatei per Shellscript verteilen
Eine VNC Passwortdatei mit /etc/skel verteilen

Der Start des Xvnc-Servers

Eine Bildschirmverteilung mit VNC unter Linux kann nur dann funktionieren, wenn alle Anwender auf den gleichen VNC Server zugreifen. Diesen Server sollte der Lehrer auf einer hinreichend leistungsfähigen Maschine starten. Diese Maschine muß nicht unbedingt der Lehrerrechner sein, sondern kann auch ein beliebiger Server sein, er muß nur eine X-Window Umgebung zur Verfügung stellen (womit Arktur in der "Grundausstattung" für diese Aufgabe nicht in Frage kommt).

Es sollte für den Betrieb des VNC-Servers einen eigenen Benutzer vncuser geben, dessen I dentität der Lehrer mit su -l vncuser annimmt.
Je nach Güte der Bildschirme an den Schülerarbeitsplätzen ist die Standardauflösung von 1024x768 für den VNC-Desktop zu groß, beim Start des Servers sollte deshalb 800x600 als Auflösung angegeben werden. Ob man mit der Vorgabeeinstellung "16 Farben Modus" (8bit Farbtiefe) auskommt oder nicht, hängt natürlich vom persönlichen Geschmack ab. Ich finde 8bit unerträglich, und würde die Farbtiefe daher beim Aufruf auf 16bit festlegen. Die komplette Befehlszeile auf Maschine "Snoopy" sieht dann (in einer Zeile geschrieben!) so aus (zur Erklärung der anderen Optionen siehe die Xvnc Dokumentation):

vncserver -geometry 800x600 -depth 16 -alwaysshared -dontdisconnect -economictranslate :2

Der Start des Viewers durch den Lehrer

Um mit dem Server arbeiten zu können, muß jetzt der Lehrer einen Viewer starten. Die Eingabe in einem xterm lautet:

vncviewer snoopy:2 &
startet den vncviewer und läßt ein Dialogfenster mit der Aufforderung zur Eingabe des Passwortes erscheinen. Dieses Passwort muß jeder kennen, der sich mit dem Server verbinden möchte (eine Möglichkeit zur Umgehung wird unten erklärt).


Der Start des Viewers bei den Schülern

Damit die Schüler jetzt auch sehen, was der Lehrer macht, müssen auch sie auf ihren Rechnern einen VNC-Viewer starten und sich mit snoopy:2 verbinden. Damit es aber keine Probleme mit konkurierenden Eingaben gibt, muß die Option -listenonly beim Start gegeben werden (dass alle Zugriffe als "shared" behandelt werden, wurde bereits in einer Startoption des Servers festgelegt):

Die Kommandozeile in einem xterm lautet dann:
vncviewer -listenonly -shared snoopy:2

Anschließend muß das Passwort für die Maschine snoopy eingegeben werden. Damit sollte es jetzt möglich sein, dass alle Schüler auf ihren Bildschirmen das sehen, was der Lehrer auf seinem VNC Desktop demonstriert.


Eine VNC Verbindung per Mausklick starten

Diese Befehlszeile kann man natürlich auch in einem KDE Ikon hinterlegen, so dass für die Herstellung der Verbindung nur ein Mausklick notwendig ist ... wenn man nicht ein Passwort eingeben müßte!
Es ist aber beim Start des Viewers möglich, den Namen der Datei mit dem notwendigen Passwort als Befehlszeilenoption zu übergeben. Weil der Server ja unter einer Benutzerkennung läuft, deren Homeverzeichnis keine persönlichen Daten enthält, ist es nicht schlimm, wenn das Passwort in jedem Benutzerverzeichnis hinterlegt wird. Selbst wenn sich ein Schüler unberechtigterweise dort einloggt, kann er mit den dort gespeicherten Daten nichts anfangen (von Spam-Mails unter fremder Kennung mal abgesehen).

Der Aufruf des Viewers mit dem gespeicherten Passwort für die Maschine "Snoopy" mit Bildschirmnummer 2 lautet dann:

vncviewer snoopy:2 -passwd ~/.vnc/vncpass

Als Speicherort halte ich ein Verzeichnis .vnc für sinnvoll, die Datei könnte vncpass heißen. Nun muß diese Datei natürlich mit dem richtigen Inhalt versorgt werden, nämlich dem Passwort, das beim ersten Start des Xvnc durch den Lehrer eingegeben worden ist. Dazu gibt es zwei Möglichkeiten:

  1. sofort und jetzt per Shell-Script
  2. lange vorgeplant mittels /etc/skel

Im laufenden Betrieb wird man natürlich eine Kombination aus beidem wählen: für die bereits angelegten Anwender wird die Datei per Script verteilt, für neue Anwender erhalten sie automatisch über /etc/skel.

Eine VNC Passwortdatei per Shellscript verteilen

Die Datei mit dem Passwort wird im Verzeichnis ~/.vnc des Anwenders abgelegt, der den Server gestartet hat, also vncuser, womit die zu kopierende Datei dann /home/vncuser/.vnc/passwd heißt Um die Datei mit seinem Passwort in die anderen Homeverzeichnisse zu kopieren, benötigt man natürlich Root-Rechte. Das folgende Script ist für den Gebrauch auf Arktur gedacht und kopiert die Passwortdatei in die Homes der Schüler.

#!/bin/bash
for i in 'cat /etc/passwd | grep :102: | cut -d: -f1' 
	do
	   if ! test -d /home/$i/.vnc ; 
	      then mkdir /home/$i/.vnc
	   fi
	cp /home/vncuser/.vnc/passwd /home/$i/.vnc/vncpass
	chown root.root /home/$i/.vnc/vncpass
	chmod a+r /home/$i/.vnc/vncpass
done
exit 0

Eine VNC Passwortdatei mit /etc/skel verteilen

Wenn man die Gelegenheit hat, den Einsatz von VNC längerfristig zu planen, ist es sinnvoll, einen Passwortdatei bereits im Verzeichnis /etc/skel zu hinterlegen, von wo aus sie beim Anlegen eines neuen Anwenders automatisch in dessen Home kopiert wird. Etwas problematisch ist hierbei natürlich die Rechteverteilung. Eine Datei, die aus /etc/skel in ein Homeverzeichnis kopiert wird, bekommt nachher auch UID und GID des entsprechenden Users zugewiesen. Andere Besitzverhältnisse müssen explizit geregelt werden, bei Arktur über die Script-Datei /usr/lib/ods-server/bin/makehome.

Das einzige, was man als Vorbereitung zu tun hat, ist das Kopieren der Datei /home/vncuser/.vnc/passwd nach /etc/skel/.vnc/vncpass .

Bei diesem Vorgehen wird der betreffende Schüler Eigentümer der Datei, kann sie also auch löschen. Wenn gewünscht wird, dass das nicht möglich sein sein soll, so muß leider die Datei /usr/lib/ods-server/bin/makehome entsprechend angepasst werden (dazu gibt es hier keine Anleitung, wer dort etwas ändert, sollte wissen, was er tut :-). Ich beantworte aber auch diesbezügliche Emails.

Pfeil_nach_oben Nach oben

© Thomas Litsch, zuletzt aktualisiert 25.09.2000, Email: thomas.litsch@linux-schule.de