Serverbetrieb aber wie?

Am Beispiel einer Novell SuSE 9.1 / 9.3 Distribution

von Günther Zander

Wie kann YaST für die eigenen Zwecke angepasst werden? Wie Spiegelt man einen Web-Server? Wie installiert man NTP, DHCP, Samba und NFS? Wie kann ein Web-Server oder FTP-Server betrieben werden? Was ist VNC? Was ist besser SuSE 9.1 oder doch gleich 9.3. Es steht dabei die Frage im Raum, wann ist ein System eigentlich fertig installiert? Die Version 9.3 bittet zwar eine Menge an Neuerungen, wobei es aber auch noch viele Fehler in der Software gibt. Getreu dem Motte "Neue Software, neue Fehler". Bei der Version 9.1 sind hingegen viele Fehler bereits behoben worden.


Dieser Artikel soll Neueinsteigern helfen sich in der Welt von Linux ein wenig zurecht zu finden, wobei sicherlich auch einige Profis hier Anregungen erhalten. Dieser Artikel beschreibt eine SuSE 9.1 sowie eine SuSE 9.3 Installation und möchte dabei helfen einige Klippen zu umfahren und Anregungen zu geben.

Vorbereitung des ServersEinige Programme nachinstallieren
YaST QuellmedienDas Konfigurationsprogramm YaST anpassen
SuSE Update CD'sUpdate CDs selbst erstellen und einspielen
YaST InstallationEine eigene Installationsquelle herstellen
ClientinstallationDie Clients über das Netzwerk installieren
Vollautomatisches UpdateEin vollautomatisches Update installieren
YaST-InstallationsserverAufbau eines Installationsserver unter SuSE 9.3
fcronEin erweitertes cron-Programm
wgetEine Möglichkeit um Server zu spiegeln
rsyncEine weitere Möglichkeit um Server zu spiegeln
rsyncdEinen Synchronisationserver selbst anbieten
YaST sysconfigEinbindung von eigenen Skripten.
ntpBetrieb und Aufbau eine Zeitservers.
IP-AdressenDer IP-Aufbau
DHCPNetzwerkparameter automatisch vergeben
MasqueradingDer Server als Router
thttpEin kleiner WEB-Server
FTPProgramm zum Datenaustausch
NFSProgramm zum Datenaustausch
SambaEin Windows-Server Clon
VNCDer grafische Remotezugriff
SLPWo ist welcher Service im Netz
cupsWichtige Tipps zum Druckspooler
KrusaderEin grafischer MC-Clon
Verschlüsselte DateienAnlegen und benutzen
NvidiaDie Nvidia-Grafikkarten

Tipps

Noch einige Tipps unter anderem mit/für
Löschen von benutzerabhängigen Dateien
SuSE 9.3
Evolution
Nützliche Programme
Zweites CD-Laufwerk
Dockingstation
Onlinebanking mit Towitogo-Kartenleser und Moneyplex
Installation einer Webcam mit PWC-Treiber incl. dem notwendigen Kernelcompilieren
Psion Revo
Kontact-Daten sichern

Vorbereitung des Servers

In diesem Beispiel wird eine Standardinstalltion mit SuSE Professional durchgeführt wobei im Anschluss die aufgeführten Programme nachinstalliert wurden. Zum Abschluss wurde ein Onlineupdate durchgeführt. Unter SuSE 9.1 wurden folgende Programme nachinstalliert:

	locate                  lokale Suchdatenbank
	kdirstat                Zeigt die Größe der einzelnen Verzeichnisse an
	ksteak                  Englisch-Deutsch Übersetzungen
	gcc                     C-Compiler
	make                   	Linker für die Programmerstellung
	thttp 			Ein kleiner Web-Server
	vsftp			Ein FTP-Server
	wget			Programm zum Spiegeln von Web-Seiten
	rsync			Synchronisationsprogramm
	kdeartwork3		Zusätzliche Icons
	autoyast2-utils		YaST Zusatzprogramme
	taper 			Datensicherungstool
	mozilla			Web-Browser
	mozilla-deat		deutsch für den Web-Browser

Unter SuSE 9.3 sind die Programme thttpd, taper und wipe nicht auf den Installations-CDs enthalten, aber auf der DVD. Diese können nun von dort installiert werden, oder sie werden aus dem Internet geladen. Das Paket autoyast2-utils ist bei dieser Version standardmäßig installiert und die Mozilla-Programme sind gegen die Firefox-Pakete ausgetauscht worden, die auch standardmäßig installiert sind.

Wenn in diesem Artikel bei einigen Programmen darauf verwiesen wird, dass diese auf der DVD vorhanden sind, so können Sie diese von der DVD aus installieren oder von der URL ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/i386/9.3 herunter laden.

Nach erfolgtem Onlineupdate wurde in ein Terminal gewechselt, mit Root-Rechten, und das Programm "updatedb" gestartet, damit das Programm locate auf diese Datenbasis zugreifen kann. Dieser Rechner verfügt über zwei Schnittstellen. Die Schnittstelle eth1 ist die Verbindung ins Internet und wird vom Provider über DHCP eingestellt. Die zweite Schnittstelle eth0 bedient das Intranet und wurde mit der statischen Adresse 10.24.10.1/255.255.255.192 konfiguriert. Als Rechnername wurde "server" und als Domainname "earth.de" gewählt. [Anfang]

YaST Quellmedien

Um bei einer Nachinstallation von Programmen nicht Diskjokey spielen zu müssen, wurde ein neuer Verzeichnispfad /srv/ftp/suse/9.1/cd[1-5] angelegt und die CDs in die Verzeichnisse kopiert.Dieses muss nun dem Konfigurationsprogramm YaST noch mitgeteilt werden. Dazu wurde YaST aufgerufen und die Bereiche "Software/ Installationsquelle wechseln" angewählt. Mit "Hinzufügen/lokales Verzeichnis" wurden nun alle CD-Verzeichnisse eingebunden. Zum Abschluss darf nicht vergessen werden die CD zu deaktivieren.

Von nun an werden alle Programme automatisch aus diesen Verzeichnissen installiert. YaST speichert für jedes einzelne Quellmedium die Daten in ein Verzeichnis /var/adm/YaST/InstSrcManager/IS_CACHE_0x{Hex-Zahl} ab. Dabei ist nur die Datei DESCRIPTION/description interressant, da dort die Einträge für das Quellmedium stehen. Zum Beispiel kann mit dem Eintrag "=Default_activate : 0" die Quelle ausgeschaltet werden, und mit "1" wieder eingeschaltet werden.

Um auch die Updates immer auf dem Rechner zu haben, wird ein SuSE-Updateserver gespiegelt. Hierfür wurde ein Script geschrieben welches die aktuellen Updates herunterlädt und in das Verzeichnis /srv/ftp/suse/i386/update/{Version} kopiert. Ein Manko dabei ist, das immer die aktuellen Programme heruntergeladen werden, aber die damit überflüssig gewordenen Programmupdates nicht gelöscht werden. Hier gibt es nur die Möglichkeit von Zeit zu Zeit das gesamte Verzeichnis zu löschen und alle Updates nochmal herunter zu laden. Nach Beendigung eines Softwarezyklus können die Updates durchaus Größen von 4GB erreichen, pro Version versteht sich. Die Quellcodes haben dann eine Größe von leicht 15GB, weswegen hier die Updates nur ohne Quellcode geholt werden.

Das Script "/usr/local/bin/wget-suse" welches diese Aufgabe übernimmt, wird unter dem Punkt wget behandelt. Da nun die Updates auf einer lokalen Platte liegen, muss dieses neue Pfad /src/ftp/suse auch YaST mitgeteilt werden.

Im YAST Onlineupdate wählen Sie eine neue Datenquelle über die Option "Neuer Server". Es erscheint eine weitere Auswahl an möglichen URL-Typen. Wenn Sie die Punkte CD oder DVD auswählen wird nur noch das Device abgefragt. Die URL-Typen FTP, HTTP,NFS und Samba benötigen noch weitere Informationen um eine Verbindung zu der Datenquelle aufzubauen. Neben dem Servernamen und dem Verzeichnispfad zu den Updatedateien können Sie noch entscheiden ob der Zugang Anonym oder auf einen User mit Passwort erlaubt wurde. Diese Einstellung sind auf dem Server festgelegt. FTP, HTTP und Samba arbeiten dabei mit Benutzername und Passwort, wo hingegen die Verbindung über NFS nur über die Zugriffsrechte gesteuert wird. Die Verbindungsart HTTP wird in diesem Artikel nicht behandelt.

Um diese Daten nicht bei jedem Update einzugeben, können Sie YAST so konfigurieren das diese Daten immer vorhanden sind. Um zu vermeiden, das das Programm sich die neusten Serverdaten aus dem Internet herunter lädt, ändern Sie in der Datei /etc/sysconfig/onlineupdate den Parameter YAST2_LOADFTPSERVER="yes" in "no". Wenn Sie diesen Parameter auf "no" gesetzt haben, bedeutet dies, das eine aktuelle Liste der Downloadserver nicht mehr von www.suse.de herunter geladen wird. Wobei, bei "yes", eine Internetverbindung voraus gesetzt wird. Ohne Internetverbindung bricht das Onlineupdate sofort ab, da YaST die Datei /var/lib/YaST2/you/youservers jedes mal neu erzeugen will.


In der Datei /var/lib/YaST2/you/youservers werden alle Rechner die als Datenquellen zur Verfügung stehen eingetragen. Wenn Sie in dieser Datei einige Einträge für YAST verstecken möchten, aber diese Einträge nicht löschen wollen, so fügen Sie als erstes Zeichen das Kommentarzeichen "#" ein. Das Datum des letzten Updates, wie der letzte Server von dem das Update geholt wurde stehen in der Datei /var/lib/YaST2/you/config.

Um zu gewährleisten, das Sie sowohl ein Update aus dem Internet vornehmen können, wie auch von einem lokalen Verzeichnis oder Intranet, tragen Sie ihr lokales Verzeichnis, oder die Updateserver die nicht unter www.suse.de stehen, in der Datei /etc/youservers ein. Das lokales Verzeichnis können Sie mit "dir:///srv/ftp/suse/" eintragen. Damit ist gewährleistet das Sie sowohl den lokalen, wie auch den Internetzugriff auf die Updateverzeichnisse haben. Sie können dem Eintrag noch einen sprechenden Namen mitgeben wie "dir:///srv/ftp/suse/;lokales Verzeichnis". Dieser Name wird dann unter der Installationsquelle mit angezeigt.

Bei einem Update lädt das System alle notwendigen Updates vom Verzeichnis/Server in das lokales Verzeichnis "/var/lib/YaST2/you/mnt" herunter. Das bedeutet, das nach einem Update auf diesem Rechner alle Dateien zwei mal vorhanden sind. Einmal in /srv/ftp/suse/... und in /var/lib/YaST2/you/mnt. Da diese Unsinnig ist, sollten nach einem Update die Dateien in /var/lib/YaST2/you/mnt wieder gelöscht werden. Dieses wird erreicht in dem der Parameter YOU_REMOVE_SOURCE_PACKAGES auf "yes" in der Datei /etc/sysconfig/onlineupdate gesetzt wird. Diese sollte auch bei den Clients gesetzt werden, da die Updates auf dem Server immer aktuell vorhanden sind.

Die Parameter YOU_REMOVE_SOURCE_PACKAGES und YAST2_LOADFTPSERVER können alternative auch mit YaST/System/Editor und dann System/YaST2/Onlineupdate geändert werden. [Anfang]

SuSE Update Cd's erstellen und einspielen

Die Updates vom Internetserver werden in ein Verzeichnis mit der Struktur {Hardware}/update/{Version} abgelegt. In diesem Beispiel wäre das "i386/update/9.x" wobei das Root-Verzeichnis "/srv/ftp/suse" ist. Dahinter befinden sich dann alle weiteren Verzeichnisse die das Update benötigt. Dieser Updatepfad "i386/update/9.x" ist auf der CD auch mit zu erstellen, da sich diesen Pfad das YAST-Programm aus den Maschinen und den Softwareparametern selbst zusammenstellt. Eingespielt wird eine Update-CD über YaST/Software/Patch CD-Update. [Anfang]

YaST Installationsquelle erstellen

Das Ziel dieses Abschnittes ist es eine "echte" Installationsquelle für YaST, aus den SuSE-CDs, so zu erstellen, damit eine Installation der Clients über das Netzwerk erfolgen kann. Lesen Sie dafür bitte auch den Artikel unter portal.suse.com/sdb/de/2004/02/yast_instsrc.html. Da die CDs bereits auf die Platte kopiert wurden, werden wir diese Verzeichnisse auch als Datenbasis benutzen.

Kopieren Sie in das Verzeichnis /srv/ftp/suse/9.1 die Verzeichnisse "/srv/ftp/suse/9.1/cd1/media.1" und "/srv/ftp/suse/cd1/suse/setup". Sowie die Dateien "/srv/ftp/suse/9.1/cd1/content" und "directory.yast". In der kopierten Datei media.1/media ändern Sie die Anzahl der Medien auf 1. In der Datei "srv/ftp/suse/9.1/cd1/content" können Sie die LABEL-Variablen mit einem freien Text belegen. Der dort enthaltende Text wird später in YaST angezeigt werden. Dieser Text ist frei wählbar.

Falls noch nicht geschehen, sollten Sie nun das Paket "autoyast2_utils" installieren. Wechseln Sie in einem Terminal mit Rootrechten in das Verzeichnis /srv/ftp/suse/9.1 und führen dort nacheinander die Befehle "ls -A1 > directory.yast" und "create_package_descr -d cd1/suse/ -d cd2/suse/ -d cd3/suse/ -d cd4/suse -d cd5/suse -x setup/descr/" aus, damit die neue Installationsquelle erstellt wird.

Bei SuSE 9.3, wo das Programm create_packages_descr bereits installiert ist, steht es Programm leider nicht in der Pfad angabe. Deswegen müssen Sie das Prgramm aufrufen mit "/opt/kde3/share/apps/krpmview/create_package_descr -d cd1/suse/ -d cd2/suse/ -d cd3/suse/ -d cd4/suse -d cd5/suse -x setup/descr/".

Anschließen brauchen Sie nur die neue Installationsquelle einzubinden, siehe den letzte Eintrag, und die anderen Quellen deaktivieren. Obwohl hier SuSE 9.1 installiert ist, funktioniert es auch mit der SuSE 9.2 und 9.3 Version (Die CDs sind analog zu Version 9.1 auf den Server eingespielt worden). Beim Client kann jetzt eine FTP-Verbindung als Installationsquelle zum Server herzustellen werden. Dann können, über das Netzwerk, alle weiteren Installationen vorgenommen werden. Bei der hier beschriebenen Version müssen Sie auf dem Client als Installationsquelle "suse/9.x/cd1" angeben. Obwohl Sie hier die CD1 angeben, findet das Installationsprogramm automatisch die anderen CDs zur Installation.

Eine weitere Version wäre wenn Sie alle CDs in eine Verzeichnis kopieren würden. Dabei können Sie bereits vorhandene Dateien gefahrlos überschreiben. In diesem Beispiel wurden die Dateien in ein Verzeichnis "suse/9.1" kopiert. Die Verzeichnisse Media.2 bis Media.5 können Sie löschen. In der Datei Media.1/media ist die Anzahl der Medien von 5 auf 1 zu ändern, und in der Datei content die Einträge für LABEL anzupassen. Um die Installationsquelle zu erstellen müssen Sie auch hier die beiden Befehle ausführen:

	ls -A1 > directory.yast
	create_package_descr -d suse/ -x suse/setup/descr/

Nun können Sie als Installationsverzeichnis immer suse/9.1 angeben. Welche der beiden Möglichkeiten Sie benutzen, hängt nur von ihrem Geschmack ab. Hier ist die erste Version installiert, Obwohl der Printscreen zur zweiten Variante gehört. [Anfang]

Clientinstallation über das Netzwerk

Wenn Sie einen Rechner komplett über das Netzwerk installieren möchten, so benötigen Sie dafür einige Disketten. Falls Sie diese mit dem YaST2-Controlcenter unter "System/Boot-Disketten erzeugen" erzeugen möchten - Reingefallen, dieser Punkt erstellt nämlich nicht alle notwendigen Disketten, dieses müssen Sie per Hand erledigen. Gehen Sie dazu in das Verzeichnis {cdrom}/boot und rufen dort folgende Programm hintereinander auf um die Disketten zu erstellen.

	dd if=bootdsk1 of=/dev/fd0u1440        für Bootdisk1
	dd if=bootdsk2 of=/dev/fd0u1440        für Bootdisk2
	dd if=bootdsk3 of=/dev/fd0u1440        für Bootdisk3
	dd if=modules1 of=/dev/fd0u1440        für Moduldisk1
	dd if=modules2 of=/dev/fd0u1440        für Moduldisk2
	dd if=modules3 of=/dev/fd0u1440        für Moduldisk3
	dd if=modules4 of=/dev/fd0u1440        für Moduldisk4
	dd if=modules5 of=/dev/fd0u1440        für Moduldisk5

Wenn Sie sich nicht die Arbeit mit den Disketten machen wollen, so können Sie natürlich auch CD1 als Bootmedium verwenden. Bevor Sie eine Installation über das Netzwerk vornehmen, müssen Sie wissen welche Netzwerkkarte Sie benutzen und wie der Treiber dazu heißt. Ferner benötigen Sie noch ihre eigene IP-Adresse und die Subnetmask falls kein DHCP installiert ist, und die IP-Adresse des Installationservers.

Nachdem Sie den Rechner gestartet haben, erscheint das YaST-Installationsmenü. Hier wählen Sie "Manuelle Installation" aus. Anschließend wählen Sie für die Sprache und die Tastaturbelegung "Deutsch". Um die Netzwerkkarte einzubinden gehen Sie in den Menüpunkt "Kernel-Module (Hardware-Treiber) und wählen dort "Netzwerktreiber laden" aus. Nun können Sie in dem Menü ihre Netzwerkkarte auswählen, hier z.B. "e100". Bei einigen Treibern kann es vorkommen, das noch ein Menüpunkt "Parameter" angezeigt wird. Hier müssen Sie, nur wenn nötig, noch Parameter für diese Karte mit angeben oder das Feld frei lassen. Nachdem die Netzwerkkarte installiert ist verlassen Sie diesen Menüpunkt mit "Zurück". Nun wählen Sie "Installation / System starten" und anschließend "Installation / Update starten" aus.

Als Quellmedium wählen Sie "Netzwerk" aus. Das Netzwerkprotokoll ist in diesem Beispiel "FTP". Die Frage "automatische Konfiguration via DHCP" wird in diesem Beispiel mit "Nein" beantwortet. Als eigene IP-Adresse wird nun "10.24.10.24" eingetragen und für das Subnet "255.255.255.192". Das Gateway erhält auch die eigene IP-Adresse "10.24.10.24" und auf die Frage des Namensservers wird die Taste ESC gedrückt. Der FTP-Server hat die IP-Adresse "10.24.10.1". Da der FTP-Zugang für Anonymus gesperrt ist wird die Frage nach einem Passwort mit "Ja" bestätigt. Nun folgt die Eingabe des Benutzers und seines Passwortes. Da kein Proxy installiert ist, wird diese Frage verneint. Zum Schluss muss noch des Serververzeichnis "suse/9.x/cd1" angegeben werden. Damit ist die Verbindung zum Installationsserver hergestellt, und es erfolgt eine normale Installation des Rechners. Hier werden nochmal die notwendigen Schritte tabellarisch aufgeführt:

	{Von CD1 starten} 
 	Manuelle Installation 
 	Sprache = Deutsch 
 	Tastatur = Deutsch 
 	Kernel-Module (Hardware-Treiber) 
	 	Netzwerktreiber laden 
 			{Netzwerkkarte auswählen} 
 		Zurück 
 	Installation / System starten 
 		Installation / Update starten 
 			Quellmedium = Netzwerk 
	 			Netzwerkprotokoll = FTP 
 				eigene IP-Adresse = 10.24.10.24 
 				Subnet = 255.255.255.192 
 				Gateway = 10.24.10.24 
 				Namensserver ESC 
 				FTP-Server = 10.24.10.1 
 				Passworteingabe = JA 
 					Benutzername & Passwort 
 				Proxy = NEIN 
 					Serververzeichniss = suse/9.x/cd1 

Aber wie so oft im Leben, hat sich dieses vorgehen bei SuSE 9.3 ein wenig geändert:

  	{Von CD starten} 
  	Mit F4 auf Deutsch umstellen
  	Mit F3 auf FTP umschalten 
  		FTP-Server = 10.24.10.1 
  			Passworteingabe 
  	Der Rest entspricht dem obigen vorgehen. 

[Anfang]

Vollautomatisches Update

Unter dem Punkt Onlineupdate in YaST können Sie ein vollautomatisches Update konfiguriere. Durch die Aktivierung stellen Sie einen Cronjob für eine bestimmte Uhrzeit ein. Die erzeugte Datei /etc/cron.d/yast2-online-update enthält dann den Wert "00 14 * * * root online_update". Diese Einstellung setzt eine Internetverbindung voraus. Um auf einem bestimmten Server zuzugreifen, können Sie dem Programm online_update, mit dem Parameter -u, mitteilen von welchem Server er die Updates holen soll. In diesem Beispiel wäre es dann:

	00 14 * * * root online_update -u ftp://{USER}:{PASSWORT}@10.24.10.1/suse

Dieses Job führt dann automatisch ein Update durch. Es werden keine Meldungen ausgegeben, das gerade ein Update stattfindet. Ein evtl. angemeldeter Benutzer bekommt hiervon nichts mit, außer das u.U. der Rechner ein wenig langsamer wird. Dieses vollautomatisches Update eignet sich für das Programm "fcron" welches weiter unten behandelt wird. [Anfang]

YaST - Installationsserver

Mit der Version SuSE 9.3 wird auch ein YaST-Installationsserver mit ausgeliefert. Hierzu muss das Paket "yast2-instserver" installiert werden. Anschließend können Sie den Installationsserver unter YaST/Verschiedenes/Installations-Server einrichten. Dieses ist eine weitere, und vielleicht auch die bessere, Möglichkeit die Installationsquellen zur Verfügung zu stellen. Zum einen brauchen Sie nicht, wie weiter oben beschrieben, die Quellen umständlich zu erzeugen. Und zum anderen können Sie eine Clientinstallation durchführen, indem Sie als Installationsquelle SLP (wird weiter unten beschrieben) auswählen, womit die gesamte Vorgehensweise bei der FTP-Clientinstallations wegfallen würde. Bei der Konfiguration des Installationsservers müssen Sie sich zuerst entschließen, über welches Netzwerkprotokoll Sie die Daten zur Verfügung stellen wollen. Sie haben die Auswahl zwischen HTTP, FTP, NFS oder nur lokal. Wenn Sie wie in diesem Artikel bei HTTP und FTP mit Passwörten und dafür eingerichteten Benutzern arbeiten entfällt diese Option, da bei einer SLP-Installation keine Passwörter abgefragt werden. Es bleibt also nur die Option NFS übrig. Für das Quellverzeichnis wurde hier der Pfad "/srv/ftp/suse/" ausgewählt mit den NFS-Optionen "*" und "ro,root_squash,sync".

Nun werden die Quellen installiert. Dazu vergeben Sie einen Verzeichnisnamen, wo diese Quellen stehen sollen. Z.B. "9.1" und "9.3". Desweiteren sollten Sie das Feld aktivieren, wo der Installationsserver mittels SLP bekannt gemacht wird. Nachdem Sie nun der Aufforderung zum CD einlegen nachgekommen sind und alle Cd's einkopiert wurden, steht die neue Installationsquelle zur Verfügung. Sie können hierbei natürlich mehrere Quellen anlegen. Bei einer Netzwerkinstallation werden Sie dann gefragt von welcher Quelle aus Sie installieren möchten. Die Konfiguration finden Sie unter /etc/YaST2/instserver/instserver.xml. [Anfang]

fcron

Fcron (fcron.free.fr) ist dabei, die verbreiteten Programme Vixiecron und Anacron zu ersetzen. Deren Funktion ist, Programme regelmäßig oder zu bestimmten Zeiten auszuführen. Üblicherweise ermöglichen diese Programme, vorher spezifizierte Programme, zu einer bestimmten Uhrzeit, einem Datum oder Wochentag auszuführen.

Auch die Angabe von Perioden wie alle Stunde oder jede Minute gehört zu den normalen Fähigkeiten. Fcron ersetzt diese Programme komplett und erweitert diese um einige Funktionen: Zunächst ist es möglich das Ausführen eines Programms von der Systembelastung abhängig zu machen. Die Empfänger der Ausgabe-Mail können nun auch angegeben werden. Damit geht die Ausgabe-Mail nicht mehr zwingend an den ausführenden Benutzer.

Eine Funktion die hier zum Einsatz kommt ist für Computer gedacht, die nicht ständig angeschaltet sind. Es ist mit fcron möglich, Programme laufen zu lassen, abhängig von dem Einschalten des Rechners an.

Artikel über fcron finden Sie im Heft Linux-Magazin 3/2001. Im Artikel über fcron im Linux-User 7/2004 hat sich ein Fehler bei den Parametern eingeschlichen. 05m steht nicht wie angegeben für 5 Minuten sondern für 5 Monate.

Das Programm fcron-2.0.2.src.tar.gz wurde herunter geladen und unter /srv/ftp/programme/programme/fcron-2.0.2 abgelegt. Für die Installation des Programms wird dieses entpackt unter /tmp. Öffnen Sie ein Terminal mit Root-Rechten und wechseln Sie in das Verzeichnis /tmp/fcron-2.0.2. Dort werden nacheinander die Befehle "./configure" und "make" ausgeführt.

Um dieses Programm unter SuSE auszuführen muss nun das Installationsprogramm von fcron geändert werden. Im Script ./script/boot-install sind die Zeile 178 und 183 zu ändern!

	Zeile 178 "cd $ROOTDIR/rc$j.d/ ; ln -f -s ../init.d/fcron S40fcron" 
	in "cd $ROOTDIR/init.d/rc$j.d/ ; ln -f -s ../init.d/fcron S40fcron"

	Zeile 183 "cd $ROOTDIR/rc$j.d/ ; ln -f -s ../init.d/fcron K60fcron" 
	in "cd $ROOTDIR/init.d/rc$j.d/ ; ln -f -s ../init.d/fcron K60fcron"

Anmerkung des Autors: In diesem Script wäre es besser die Verzeichnisse mit "find /etc -name rc5d -type d -printf %h\\n" zu suchen, da damit die Installation universeller wäre.

Nun kann der Befehl "make install" ausgeführt werden unter /tmp/fcron-2.0.2. Alle Anfragen wurden hier mit Y bestätigt. Da das Programm nun installiert ist, kann das Verzeichnis /tmp/fcron-2.0.2 gelöscht werden.

Da nun ein Benutzer "fcron" automatisch mit angelegt wurde, und dieser nur für das System notwendig ist, sollte die Anzeige beim Login unterbunden werden. Dafür gehen Sie in das Programm K/Kontrollzentrum/Systemverwaltung/Anmeldungsmanager. Wechseln Sie in den Systemverwaltungsmodus und geben das Root-Passwort ein. Auf der Registerkarte "Benutzer" haken Sie den Benutzer fcron an, damit dieser nicht mehr angezeigt wird.

Die Daten für fcron werden mit dem Befehl "fcrontab -e" erstellt. Diese können sowohl Systemweit, mit dem Benutzer Root, oder auch für lokale Benutzer angelegt werden. Eine Beschreibung finden Sie unter /usr/share/doc/fcron-2.0.2. Falls die fcrontab automatisch bearbeitet werden soll, so kann die Tabelle mit "fcrontab -l" ausgelesen werden und die Daten in einer Datei gespeichert werden. Ein erneutes einlesen erfolgt dann über "fcrontab -n {file}". Die System-, wie auch die Benutzerabhängigen fcrontabs finden Sie im Verzeichnis /var/spool/fcron. [Anfang]

Spiegeln von Internetseiten - wget

Als Beispiel für das das Spiegeln von Internetinhalten wird hier einer der SuSE-Updateserver genommen. Das Programm wget lädt komplette Internetseiten auf ein lokales Verzeichnis herunter und kann dafür sorgen das dieses Verzeichnis immer aktuell gehalten wird. Mehr Informationen zu wget wie auch zu den grafischen Oberflächen die auf wget aufsetzten erfahren Sie unter:

www.linux-user.de/ausgabe/2001/08/090-wget/wget.html
www.pl-forum.de/berichte/wget-doku.html
www.linuxnetmag.com/de/issue3/m3wget1.html

Folgende Parameter kommen in diesem Beispiel zum Einsatz:

-c Bei einem Abbruch der Verbindung werden die restlichen Daten die noch nicht übertragen worden sind, beim nächsten Verbindungsaufbau übertragen.
-r Von dem angegebenen Verzeichnis wird rekursiv geladen. Das heißt auch alle Unterverzeichnisse.
-l5 Damit wird die Verzeichnistiefe angegeben. In diesem Beispiel heißt es, das genau 5 Unterverzeichnisse mit übertragen werden. Falls es ein 6. Unterverzeichnis geben sollte, so wird dieses nicht mehr übertragen. Mit diesem Parameter muss vorsichtig umgegangen werden, da Sie sich sonst das gesamte Internet auf ihren Rechner herunterladen könnten, und dafür ist ihre Platte viel zu klein.
-N Ihre lokal gespeicherten Daten werden mit denen auf dem Server verglichen. Es werden dann nur die Daten übertragen die sich geändert haben. Damit kann das lokale Verzeichnis immer aktuell gehalten werden.
-nH Bei dem anlegen der Verzeichnisse wird der Hostname nicht berücksichtigt.
-X Exclude, welche Verzeichnisse nicht mit übertragen werden sollen.
--cut-dir=x Beim Ablegen der Dateien, wird der Verzeichnissbaum mit erzeugt. Mit diesem Parameter geben Sie an, ab welcher Stelle der Verzeichnisbaum angelegt werden soll.

Wechseln Sie in das Verzeichnis in dem Sie später die Daten ablegen möchten. In diesem Beispiel ist es /srv/ftp/suse. Dort rufen Sie das Programm wget wie folgt auf:

	wget -r -l5 -N -nH --cut-dirs=2 -X \
		/pub/suse/i386/update/9.1/rpm/src/ \
		ftp://ftp.gwdg.de/pub/suse/i386/update/9.1/

Nach der Übertragung der Daten haben Sie folgende Verzeichnisstruktur: /srv/ftp/suse/i386/update/9.1/*. Wenn Sie die Parameter -nH und -cut-dir=2 nicht mit angegeben hätten, hätten Sie folgende Struktur auf ihrem Rechner: /srv/ftp/suse/ftp.gwdg.de/pub/suse/i386/update/9.1/*. Da diese beiden Parameter aber mit angegeben wurden, brauchen Sie bei einem Update nur noch das Verzeichnis /srv/ftp/suse anzugeben.

Da die Sourcecodes bis zu 15GB haben können, und diese für ein Update nicht relevant sind, wurde dieses Verzeichnis mit dem Parameter -X angegeben und nicht mit übertragen. Um diese zu automatisieren wurde ein Script wget-suse im Verzeichnis /usr/local/bin erstellt:

	Script wget-suse
	#! /bin/sh 
	# Script: wget-suse 
	# Holen der SuSE Updates ohne Sourcen 
	cd /srv/ftp/suse 
	wget -r -l5 -N -nH --cut-dirs=2 -X \
			/pub/suse/i386/update/9.1/rpm/src/ \
			ftp://ftp.gwdg.de/pub/suse/i386/update/9.1/
	wget -r -l5 -N -nH --cut-dirs=2 -X \
			/pub/suse/i386/update/9.2/rpm/src/ \
			ftp://ftp.gwdg.de/pub/suse/i386/update/9.2/
	wget -r -l5 -N -nH --cut-dirs=2 -X \
			/pub/suse/i386/update/9.3/rpm/src/ \
			ftp://ftp.gwdg.de/pub/suse/i386/update/9.3/

cd i386/update
chmod -R +r * 

Dieses Script wurde in fcron eingetragen mit "fcrontab -e" und "@ 3 /usr/local/bin/wget-suse". Damit werden die Updates automatisch 3 Minuten nachdem der Rechner eingeschaltet wurde abgeholt. Falls der Rechner durchlaufen sollte, wird automatisch alle 24 Stunden die Updates nochmals geholt. Hierfür wurde eine weitere Zeile in fcron erstellt: "@ * * 1 * * /usr/local/bin/wget-suse"

Da bei diesem Download die Dateirechte vom Downloadserver mit übertragen werden, kann es beim Update zu Problemen kommen, wenn nicht die Leserechte gesetzt wurden. Deswegen wird zum Abschluss rekursiv die Leserechte auf alle Dateien nochmals angewendet mit "chmod -R +r *".

Falls Sie hinter einer Firewall sitzen sollten, die Ihnen nur die Möglichkeit bittet über http auf das Internet zuzugreifen, können Sie sich auch über http die Verzeichnisse spiegeln lassen. Bei http werden zwar auch nur die angeforderten Daten übertragen, aber es wird der gesamte Verzeichnisbaum des zu spiegelnden Servers, auf ihren Rechner mit abgebildet. [Anfang]

rsync - Ein Syncronisationsprogramm

Um die Nachteile des Programms "wget" zu umgehen, können Sie eine Synchronisation einsetzen wie "rsync". Der Nachteil bei dem Programm "wget" ist, das Sie zwar alle ausgewählten Daten vom Server holen, aber keine Möglichkeit haben, über dieses Programm, die nicht mehr notwendigen alten Pakete zu löschen. Für rsync muss zuerst überprüft werden, ob der ausgewählte Server auch die Syncronisation unterstützt. In diesem Beispiel geben Sie einmal "rsync -n ftp.gwdg.de::" ein und Sie erhalten die Ausgabe:

	Welcome to ftp.gwdg.de (134.76.11.100) in Goettingen, Germany. 
 	Contacts: mailto emoenke@gwdg.de 

 	This server does not support --checksum (-c) 

 	debian         	Debian FTP archive 
 	debian-cd      	Debian CD archive 
 	debian-non-US  	Debian non-US archive 
 	debian-security	Debian security archive 
 	EMIS           	ftp://ftp.gwdg.de/pub/EMIS 
	FreeBSD        	ftp://ftp.gwdg.de/pub/FreeBSD 
 	FreeGIS        	ftp://ftp.gwdg.de/pub/misc/freegis 
 	GNOME          	ftp://ftp.gwdg.de/pub/linux/gnome 
 	KDE            	ftp://ftp.gwdg.de/pub/linux/kde/ 
 	kernel         	ftp://ftp.gwdg.de/pub/linux/kernel.org 
 	Mandrakelinux  	ftp://ftp.gwdg.de/pub/linux/mandrakelinux 
	MySQL          	ftp://ftp.gwdg.de/pub/misc/mysql 
 	OpenOffice     	ftp://ftp.gwdg.de/pub/openoffice 
 	SuSE           	ftp://ftp.gwdg.de/pub/linux/suse (>170 GB) 
 	SuSE-people    	ftp://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/people 
 	XFree86        	ftp://ftp.gwdg.de/pub/xfree86/XFree86 
 	pub            	ftp://ftp.gwdg.de/pub/ (2 TB, you can specify any subdirectory) 
 	FTP            	name will disappear; please use pub/.../ 

Damit wissen Sie das rsync unterstützt wird, und welche "Variablen" Sie auf diesen Server benutzen können. Wir benutzen die "Variable SuSE". Für das Update-Script "rsync-suse" ergeben sich damit folgende Einträge:

	Script rsync-suse
	#! /bin/sh 
 	# Holen der SuSE Updates ohne Sourcen 
 	cd /srv/ftp/suse/i386/update 
 	cd 9.1 
 	rsync -avz --stats --exclude=*.src.rpm --delete \
		ftp.gwdg.de::SuSE/ftp.suse.com/suse/i386/update/9.1/ . 
 	cd .. 
 	cd 9.2 
 	rsync -avz --stats --exclude=*.src.rpm --delete \
		ftp.gwdg.de::SuSE/ftp.suse.com/suse/i386/update/9.2/ . 
 	cd .. 
 	cd 9.3 
 	rsync -avz --stats --exclude=*.src.rpm --delete \
		ftp.gwdg.de::SuSE/ftp.suse.com/suse/i386/update/9.3/ . 
 	cd .. 
 	chmod -R +r * 

Nach der Einbindung in fcrontab haben wir damit erreicht, das die aktuellen Patches auf dem Server vorhanden sind, und die alte Programme automatisch gelöscht werden. Somit wird kein unnötiger Speicherplatz verschwenden. Weitere Informationen sind unter www.openschoolserver.de/sections-article25-p1.phtml , www.linuxnetmag.com/de/issue9/m9laptop1.html vorhanden. Im Gegensatz zu wget wo Sie das Verzeichnis angeben, welches nicht mit übertragen werden soll, können Sie hier Dateien angeben mit den entsprechenden Platzhaltern. Die Option -delete bewirkt dabei, das alle Dateien die auf dem lokalen Rechner vorhanden sind, aber nicht auf dem Downloadserver gelöscht werden. [Anfang]

rsyncd - Einen Syncronisationsserver selbst anbieten

Für die Installation des rsync-Daemons aktiviren Sie rsyncd in der Datei /etc/inetd.conf. Dazu suchen Sie folgende Zeilen und ändern diese ab. In der Regel muss bei der zweiten Zeile nur das vorgestellt Zeichen # gelöscht werden.

         # the rsync deamon
         rsync stream tcp nowait root /usr/sbin/tcpd /usr/sbin/rsyncd --daemon

Kontrollieren Sie in der Datei /etc/services das die Zeile "rsync 873/tcp" kein vorgestelltes Zeichen # besitzt. Wenn doch, muss dieses gelöscht werden. Natürlich können Sie sich diese Scritte auch ersparen, wenn Sie im Runlevel-Editor den Daemon rsyncd mit den Runlevel 3 und 5 startet. Die Installation ist damit abgeschlossen und Sie können mit der Konfiguration des rsync-Daemons vortfahren.

Zur Konfiguration des Daemons wird die Datei /etc/rsyncd.conf benötigt. Diese Datei unterteilt sich in einen allgemeinen Teil, in dem globale Einstellungen vorgenommen werden können, und den Teil der Paragrafen [NAME], wo spezielle Einstellungen vorgenommen werden. Hier können die globalen Einstellungen überschrieben werden.

	Konfigurationsfile /etc/rsyncd.conf 
read only = true 
use chroot = true 
transfer logging = true 
log format = %h %o %f %l %b 
log file = /var/log/rsyncd.log 
motd file = /etc/rsyncd.motd 
secrets file = /etc/rsyncd.secrets 
auth users = testuser 

[SuSE]
      path = /srv/ftp/suse 
      comment = ftp://ftp.earth.de/srv/ftp/suse => Allg. SuSE Installationsverzeichnis 

[SuSE-Update] 
      path = /srv/ftp/suse 
      comment = ftp://ftp.earth.de/srv/ftp/suse => Allg. SuSE Updateverzeichnis 

[SuSE91] 
      path = /srv/ftp/suse/9.1 
      comment = ftp://ftp.earth.de/srv/ftp/suse/9.1 => SuSE 9.1 Installationsverzeichnis 

[SuSE92] 
      path = /srv/ftp/suse/9.2 
      comment = ftp://ftp.earth.de/srv/ftp/suse/9.2 => SuSE 9.2 Installationsverzeichnis 

[SuSE93] 
      path = /srv/ftp/suse/9.3 
      comment = ftp://ftp.earth.de/srv/ftp/suse/9.3 => SuSE 9.3 Installationsverzeichnis 

Die Datei /etc/rsyncd.secrets sind folgende Einträge vorhanden, da auch hier kein Anonymous-Zugang gewährt werden soll:

 	# user:password 
        testuser:s0nne 

In dieser Datei werden alle Benutzer aufgeführt, bei denen später beim Verbindungsaufbau ein Passwort abgefragt wird. Wenn mehrere Benutzer auf ein Verzeichnis zugreifen sollen so werden diese bei "auth users" durch Komma getrennt. Eine Schwäche dieser Datei ist, das hier ein sichtbares Passwort eingetragen werden muss. Achten Sie daher darauf, das diese Datei nur die Rechte 600 besitzt und der Owner, sowie die Gruppe, root ist. Damit ist diese Datei zumindest etwas geschützt. Das Protokoll können Sie sich, gemäß dem Eintrag bei "log file" ansehen mit "less /var/log/rsyncd.log"

Wenn Sie nun von einem Client aus auf diese Verzeichnisse zugreifen wollen, so werden Sie an der Passworteingabe scheitern. Rsync wertet die lokalen Variablen USER und LOGNAME aus und übermittelt diese an rsyncd. Damit Sie den Datenaustausch mit dem "testuser" durchführen können, müssen Sie den Aufruf ein wenig modifizieren: "rsync -avz --stats testuser@ftp.earth.de ::SuSE91/ .". Nun werden Sie nach dem Passwort gefragt und der Download beginnt. Falls Sie dieses automatisieren möchten, schauen Sie sich bitte die Option "Passwordfile" im Manuel an.

Um einen allgemeinen beschreibenen Text beim Client mit anzuzeigen, wurde das File "/etc/rsyncd.motd" angelegt, welches eine allgemeine Begrüßung enthält. Durch den Aufruf von "rsync -n ftp.earth.de ::" erhalten Sie folgende Ausgabe:

  Willkommen auf dem Server von Earth.de  

  SuSE 		 ftp://ftp.earth.de/srv/ftp/suse  => Allg. SuSE Installationsverzeichnis  
  SuSE-Update	 ftp://ftp.earth.de/srv/ftp/suse  => Allg. SuSE Updateverzeichnis  
  SuSE91	 ftp://ftp.earth.de/srv/ftp/suse/9.1  => SuSE 9.1 Installationsverzeichnis  
  SuSE92	 ftp://ftp.earth.de/srv/ftp/suse/9.2  => SuSE 9.2 Installationsverzeichnis  
  SuSE93	 ftp://ftp.earth.de/srv/ftp/suse/9.3  => SuSE 9.3 Installationsverzeichnis  

[Anfang]

YaST sysconfig - Einbindung von eigenen Scripten

YaST liefert mit dem Sysconfig-Editor ein mächtiges Werkzeug um sein Softwaresystem den individuellen Bedürfnissen anzupassen. In diesem Beispiel wird die eben beschriebene Rsync-Funktionalitäten im Sysconfig-Editor abgebildet. Die Parameterdateien liegen im Verzeichnis /etc/sysconfig. Hier erstellen wir eine neue Datei "rsync". Dieses Konfigurationsdateien bestehen aus drei Bereichen:

White Spaces diese werden nicht ausgewertet und dienen nur der besseren Lesbarkeit des Scriptes
Komentare Kommentarzeilen mit "#" werden von Unix nicht ausgewertet. Diese haben in diesen Scripten eine vielfältige Funktion auf die weiter unten eingegangen wird
Variablenzeile VARIABLE=WERT, diese Zeilen werden von Unix ausgewertet

Wegen diesen Scriptaufbau ist es möglich, die Config-Dateien in den Scripten auszulesen, und die Scripte damit arbeiten zu lassen, ohne die Funktionalität des Sysconfigeditores einzuschränken. Da in den Scripten, dieses ist die Unix-Konjunktion, nur die Variablenzeilen ausgewertet werden.

Die Kommentarzeilen: Hier gibt es zwei Arten. Die erste besteht aus zwei Kommentarzeichen "##" gefolgt von einem Parameter und einem Wert der vom Sysconfigeditor ausgewertet wird. Der zweite besteht aus nur einem Kommentarzeichen "#" mit einem freien Text dahinter. Alles was hier steht, erscheint im Sysconfigeditor als beschreibender Text.

Am Anfang einer Datei steht immer "## Path:" und "## Description:". Mit der Path-Angabe geben Sie den Ort an, wo diese Daten erscheinen sollen. Falls der angegebene Ort noch nicht vorhanden sein sollte, so erstellt der Sysconfigeditor diesen automatisch. Hier wurde ein bereits bestehender Ort "Other" genommen der einen neuen Unterpunkt "Updateserver" erhält. Die Description ist ein Texteintrag der erscheint wenn Sie auf diesen Punkt gehen und dient der Beschreibung des Unterpunktes. Um eine weitere Untergliederung in der Baumstrucktur zu erhalten, können Sie diese Anweisungen jederzeit im Script wiederholen.

Der folgende Eintrag legt fest was für einen Eintrag Sie haben wollen "## Type:".

yesno Erlaubt nur die Auswahl von Yes oder No
integer Erlaubt nur die Eingabe von Zahlen
list(0,1,2,..) Erlaubt nur die Auswahl der angebotenen numerischen Liste
string (off,medium,hard) Erlaubt nur die Auswahl der Texteinträge
string Hier kann ein freier Text eingegeben werden

Mit der Angabe "## Default:" geben Sie einen Wert vor, der zwar geändert werden kann, auf dem aber jederzeit wieder zurückgegangen werden kann.

Falls es nun notwendig sein sollte, das Sie nach einer Parameteränderung einen Dienst neu starten müssen, gibt es noch die Einträge "## Service Restart:" und "## Service Reload:" gefolgt von dem zu startenden Dienst. In der Sysconfig-Datei /etc/sysconfig/rsync werden nun alle notwendigen Parameter eingegeben oder verändert die für die Datei /usr/local/bin/rsync-suse nötig sind. Die Datei rsync-suse lädt sich diese Parameter beim Aufruf des Scriptes ein mit ". /etc/sysconfig/rsync". Am Anfang der Zeile darf der Punkt gefolgt von einem Leerzeichen nicht vergessen werden! Nähere Informationen dazu, lesen Sie bitte in einem Unixhandbuch unter "forking" nach.

 /usr/local/bin/rsync-suse 
#! /bin/sh 
# Script: rsync-suse
# Guenther Zander, GPL, 2005
# Holen der SuSE Updates ohne Sourcen
# Configdatei: /etc/sysconfig/rsync

. /etc/sysconfig/rsync

# Ins lokale Updateverzeichnis wechseln
cd $UPDATE_VER

#Update Parameter modifizieren
if test $UPDATE_SOURCE = "no"
	then UPDATE_PARAMETER=$UPDATE_PARAMETER" --exclude=*.src.rpm"
fi

if test $RSYNC_LOG_AKTIV = "no"
	then $RSYNC_LOG=/dev/null
fi

# Protokolleintrag Startzeit
echo "------------------------------------------------------------------" >> $RSYNC_LOG
echo -n "Startzeit: " >> $RSYNC_LOG
date >> $RSYNC_LOG

for i in $UPDATE_VERSIONEN
do
echo >> $RSYNC_LOG
echo "SuSE Update Version" $i >> $RSYNC_LOG
echo "Aufruf: rsync "$UPDATE_PARAMETER" "$UPDATE_SERVER"/"$i"/ . >> "$RSYNC_LOG >> $RSYNC_LOG
cd $i
rsync $UPDATE_PARAMETER $UPDATE_SERVER/$i/ . >> $RSYNC_LOG
cd ..
done

# Leserechte rekursiv setzen
chmod -R +r *

# Protokolleintrag Endzeit
echo -n "Endzeit: " >> $RSYNC_LOG
date >> $RSYNC_LOG
echo >> $RSYNC_LOG 
 /etc/sysconfig/rsync 
## Path:	      Other/Updateserver
## Description:	Einstellungen der Parameter für den lokalen SuSE-Updateserver
## Type:	      string
## Default:	      "/srv/ftp/suse/i386/update"
#
# Geben Sie hier das lokale Verzeichnis ein, unter dem die einzelnen Updateversionen
# gespeichert werden sollen. Den letzten Slash sowie die Versionsnummern, dürfen hier
# nicht eingegeben werden. Z.B.: /srv/ftp/suse/i386/update
#
UPDATE_VER=/srv/ftp/suse/i386/update

## Type:	string
## Default:	"ftp.gwdg.de::SuSE/ftp.suse.com/suse/i386/update"
#
# Geben Sie hier den Downloadserver und das dazugehörende Verzeichnis an. Den letzten 
# Slash sowie die Versionsnummern, dürfen hier nicht eingegeben werden. Z.B.: 
# ftp.gwdg.de::SuSE/ftp.suse.com/suse/i386/update
#
UPDATE_SERVER=ftp.gwdg.de::SuSE/ftp.suse.com/suse/i386/update

## Type:	string
## Default:	""
#
# Geben Sie die Versionsnummer, mit einem Leerzeichen getrennt an.
#
UPDATE_VERSIONEN="9.1 9.2 9.3"

## Type:	string
## Default:	"-avz --stats --delete"
#
# Geben Sie hier die notwendigen Parameter für rsync an.
#
UPDATE_PARAMETER="-avz --stats --delete"

## Type:	yesno
## Default:	no
#
# Sollen die Quellcodes mit heruntergeladen werden? Hierbei kann es sich um eine Datenmenge 
# von über 10GB handeln!
#
UPDATE_SOURCE="no"

## Path:	      Other/Updateserver/Logging
## Description:	Loggingeinstellungenfür den lokalen SuSE-Updateserver
## Type:	      string
## Default:	      "/var/log/rsync.log"
#
# Geben sie den Ort an, wo die LOG-Datei gespeichert werden soll.
#
RSYNC_LOG="/var/log/rsync.log"

## Type:	yesno
## Default:	yes
#
# Soll ein LOG-Datei erstellt werden, wie unter RSYNC_LOG angegeben?
#
 RSYNC_LOG_AKTIV="yes" 

[Anfang]

ntp - Network Time Protokoll

Um auf den Clients immer eine korrekte, oder fast korrekte, Zeit zu haben wird die Timeserverfunktioanalität eingerichtet. Im Systemeditor wird dazu unter dem Punkt Network/Ntp der Wert der Variable XNTPD_INITIAL_NTPDATE auf AUTO-2 gesetzt. Damit werden alle Server, der Reihe nach, durchprobiert die in der Datei /etc/ntp.conf verzeichnet sind, um von dort die aktuelle Zeit zu erhalten. In diesem Beispiel wurde in der Datei /etc/ntp.conf die Zeile "server time.fu-berlin.de" eingetragen. Und ab dem nächsten anmelden stimmt die Zeit auch wieder. Natürlich können Sie in der Variablen auch, durch Leerzeichen getrennt, die Timeserver angeben die benutzt werden sollen. Im Runlevel-Editor muss der Dienst xntpd noch gestartet werden. Falls das Datum/Zeit eine zu große Differenz aufweist, wird diese Differenz in einem Schritt gesetzt werden. Damit wird erreicht, das ab sofort die aktuelle Zeit angezeigt wird. Ansonsten arbeitet das ntp-Protokoll normal mit seiner Zeitstauchung und Zeitstreckung weiter.

Durch die Übermittlung durch das Internet wird die Zeit die an diesem Server ankommt, nie die aktuelle sein. Sie wird immer um einige Millisekunden abweichen (Laufzeiten durch das Internet). Nur für Real-Time-Prozesse ist die absolute Zeit von Interesse. Aber die werden dann über eine DCF-77 Uhr im eigenen Netzwerk bedient werden. In diesem Netzwerk ist die relativ geringe Zeitabweichung nicht relevant.

Einen allgemeiner Artikel über dem Timeserver finden Sie unter www.linux-magazin.de/Artikel/ausgabe/2000/12/Timeserver/Timeserver.html. Und eine Liste aller Public NTP Servern finden Sie unter www.eecis.udel.edu/~mills/ntp/servers.html Da der ntp-Dienst nun im Runlevel eingetragen ist, wird es beim Start des Rechners zu Wartezeiten führen, da die Daten übermittelt werden müssen, oder falls kein Verbindung mit dem Internet/Intranet besteht, die Pollingzeiten abgewartet werden müssen.

Um diese zu umgehen, und damit den Bootvorgang zu beschleunigen, wurde der xntpd-Dienst im Runleveleditor deaktiviert. Als Root wurde die fcrondatei um den Eintrag erweitert " @ 3 /etc/init.d/xntpd start" erweitert. Damit wird der Dienst aktiviert, wenn die Maschine bereits 3 Minuten eingeschaltet ist. Der Benutzer kann mit seinem Rechner bereits arbeiten und der Dienst wird im Hintergrund ausgeführt. Wie lange der Dienst nun braucht ist damit nicht mehr für den Benutzer relevant. Diese vorgehen gilt für den Server und den Clients gleichermaßen, wobei bei den Clients natürlich der Server eingetragen werden muss.


Falls es sich bei dem Client um einen Windowsrechner handeln sollte, darf nicht vergessen werden die Option "Uhr automatisch von Sommer- auf Winterzeit umstellen" zu deaktivieren.

Unter SuSE 9.1 können Sie mittels Yast diese Einstellungen auch vornehmen. Dazu aktivieren Sie den NTP-Clientdienst beim Systemstart und gehen auf den Button "Lookup". Damit wird ihr Timeserver im Intranet automatisch gefunden und eingetragen.

Unter SuSE 9.3 müssen Sie in der ersten Maske erst den Button "wählen" aktivieren, bevor Sie in das Auswahlmenü gelangen. Wenn Sie hier den Button "Lookup" betätigen und das lokale Netzwerk ausgewählt haben, wird ihnen auch hier der der Intranet Timeserver angezeigt werden. [Anfang]

IP - Der Adressenaufbau

Als Netzwerkadresse (Subnetmask) wurde hier die 255.255.255.192 festgelegt um später, falls nötig, auch ein Subnetting durchführen zu können. Der Server hat die IP-Adresse 10.24.10.1. Damit ergibt sich ein Adressraum für die Clients von 10.24.10.10 bis 10.24.10.39. Die Adressen 10.24.10.2 bis 10.24.10.9 sind für zukünftige Aufgaben reserviert. Bei den Clientadressen ist noch der Adressreum von 10.24.10.40 bis 10.24.10.62 für DHCP reserviert worden. [Anfang]

DHCP

Als DHCP-Server wurde hier eine Minikonfiguration erstellt, die den Clients erlaubt eine IP zu bekommen und sich im Intranet/Internet zu bewegen. Wenn unter YaST der DHCP-Server aufgerufen wird, und die Pakete noch nicht installiert sein sollten, so holt YaST dieses erst einmal nach. Bevor Sie mit der Konfiguration anfangen können, müssen Sie sich entscheiden, auf welcher Netzwerkkarte der DHCP-Dienst laufen soll.

Bei den "Globalen Optionen" stellen Sie die Parameter ein, die für das gesamte Netzwerk gelten. Dazu aktivieren Sie die "Globalen Optionen" und gehen auf "Bearbeiten". Nun können Sie ihre Parameter dort anpassen. Anschließend gehen Sie auf Hinzufügen und wählen "Subnet" aus. Wieder durch den Button "Hinzufügen" können Sie nun alle Einstellungen vornehmen, die dieses Subnetz betreffen, wobei der Eintrag "range" den Adressbereich vorgibt, aus dem sich der DHCP-Dienst bedienen darf.

Falls YaST ihn einen Fehler beim Starten des Dientest melden sollte, müssen Sie in ein Terminal mit Rootrechten wechseln und von dort händisch "rcdhcpd restart" aufzurufen. Nun erhalten Sie auch einen Hinweis darauf, was der Fehler ist. Dieses wird Ihnen leider nicht unter YaST mitgeteilt.

Die Konfiguration wird unter /etc/dhcpd.conf gespeichert und sieht in diesem Beispiel wie folgt aus:

 /etc/dhcpd.conf 
option domain-name "earth.de";
option domain-name-servers xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx;
option routers 10.24.10.1;
option ntp-servers 10.24.10.1;
option lpr-servers 10.24.10.1;
default-lease-time 600;
ddns-update-style none;

subnet 10.24.10.0 netmask 255.255.255.192 {
  option host-name = concat("Client", binary-to-ascii(10,8,"",substring(leased-address,3,1)));
  range 10.24.10.40 10.24.10.62;
  default-lease-time 600;
  max-lease-time 7200;
}

# Laptop mit XP
host xp-laptop {
  fixed-address 10.24.10.39;
}
	

Wenn Sie den DHCP nicht über YaST installieren möchten, so können Sie natürlich auch alle Einträge in dieser Datei direkt vornehmen. Da sich die grafischen Oberfläche und die möglichen Optionen zwischen den SuSE-Versionen sehr verändert haben, wird hier nur die Konfigurationsdatei dargestellt, die Sie direkt bearbeiten können. Die hier angegebenen domain-name-servers müssen Sie gegen die DNS-Server ihres Providers austauschen.

Damit werden die IP-Adresse, die Subnetmask, die DNS-Server und die Domainsuche übertragen. Der Router wird in die Routingtabelle übertragen und ist damit auch funktionsfähig, aber dieser wird in Yast nicht unter den Routern angezeigt. Auch werden die Parameter für Rechnername und der Domainname nicht in YaST angezeigt.

Mit dem Parameter "concat" können Sie individuelle Rechnernamen vergeben. In diesem Beispiel heißen die Rechner anschließend "Client40" bis "Client62". Es ist dabei zu berücksichtigen daß nicht alle Betriebssystem diese Funktion unterstützen! Aus diesem Grunde wurde einem nicht Linux-Rechner eine feste IP-Adresse über die Option "host" zugewiesen. [Anfang]

Masquerading

Damit die Clients auf das Internet zugreifen können, muss der Server als Router eingestellt werden. Dieses wird unter den Firewalleinstellungen vorgenommen, indem das Feld Masquerading aktiviert wird und beim Router die IP-Weiterleitung aktiviert wird. Wenn nun die Clients den Standardrouter auf den Server setzen, können Sie in das Internet gelangen. [Anfang]

thttp - Ein kleiner Web-Server

Es muss nicht immer ein Apache Webserver sein, je nach Einsatzgebiet reicht mitunter ein kleiner und simpler Webserver wie thttp vollkommen aus. Zuerst muss das Paket thttp installiert werden. Defaultmäßig legt dieses Programm ein Verzeichnis /srv/www an. Falls ein anderes Verzeichnis gewünscht wird, so muss dieses in der Datei "/etc/init.d/thttpd" angepasst werden. Es handelt sich hierbei um den Parameter -d. Nachdem das Verzeichnis nun mit Dokumenten und ähnlichem gefüllt wurde, können die Clients darauf zugreifen, sowie der Dienst thttpd im Runlevel-editor aktiviert wurde. In diesem Beispiel bei den Runlevel 3 und 5.

Um nicht jedem Zugriff auf die Inhalte zu geben, ist es möglich eine Passwortdatei für die Zugriffe anzulegen. Dieses geschieht mit dem Aufruf "htpsswd {-c} /srv/www/.htpasswd [Benutzer]". Der Parameter -c muss nur beim ersten mal mit angegeben werden, damit die Passwortdatei (create) angelegt wird. Der Benutzer ist zwingend erforderlich, da das Programm dann das Passwort abfragt für diesen Benutzer. In diesem Fall wurde nur ein Benutzer angelegt -also "htpsswd -c /srv/www/.htpasswd testuser". Damit die Passwortdatei ausgewertet wird, muss sie im Verzeichnis /srv/www liegen und muss .htpasswd heißen. Die Passwortabfrage ist damit für die entfernten Rechner aktiv. Local wird die Passwortdatei nicht ausgewertet. [Anfang]

VsFTP - Very Secure File Transfer Protocol

Als FTP-Server wurde das Programm vsFTP ausgewählt. Diesen Server müssen Sie nachinstallieren, da er nicht standardmäßig installiert ist. Die Konfiguration des Servers wird in der Datei /etc/vsftpd.conf vollzogen. Eine Beschreibung der einzelnen Parameter finden Sie unter www.linuxfibel.de/ftp_srv.htm und die aktuellsten Informationen im Manuel (man vsftpd.conf). Dieses Programm legt beim Installieren das Verzeichnis /srv/ftp automatisch an.

In diesem Beispiel soll mittels Ftp auf die Daten zugegriffen werden, ohne die User/Gruppen-IDs dabei zu verändern. Des weiteren sollen nur Benutzer darauf zugreifen dürfen, die auch über eine Berechtigung verfügen. Das heißt es werden keine anonymen Zugänge zu den Daten gewährt. Damit können Sie auch keine Verbindung zum Server mit dem Programm "mc" herstellen, da dieser nur für den Anonymous-Zugang ausgelegt ist. Mit den Programmen "Konqueror" und "Krusader" können Sie aber eine Verbindung herstellen.

Mit einer Angabe des Benutzers bei chown_username, wird der berechtigte Benutzer überprüft. Eine Liste der gültigen Benutzer wird unter chroot_list_file erstellt. Damit der Benutzer bei seiner Anmeldung in "sein" Verzeichnis wechselt, muss dieses Verzeichnis unter local_root angegeben werden.

Weiter informationen zu vsFtp finden Sie im Internet unter: www.debianhowto.de/howto-archiv/de/vsftpd/installation_konfiguration.html

Die Konfigurationsdatei des Server ist hier wiedergegeben:

 vsftpd.conf  
 	write_enable=YES 
 	dirmessage_enable=NO 
 	ftpd_banner="Welcome to Earth.de FTP service." 
 	ls_recurse_enable=YES 
 	hide_ids=YES 
 	local_enable=YES 
 	local_umask=022 
 	chroot_local_user=NO 
 	chroot_list_enable=YES 
 	chroot_list_file=/etc/vsftpd.chroot_list 
 	local_max_rate=0 
 	anonymous_enable=NO 
 	anon_world_readable_only=NO 
 	anon_upload_enable=NO 
 	anon_umask=022 
 	anon_mkdir_write_enable=NO 
 	anon_other_write_enable=NO 
 	chown_uploads=YES 
 	chown_username=testuser 
 	anon_max_rate=0 
 	syslog_enable=NO 
 	log_ftp_protocol=NO 
 	xferlog_enable=NO 
 	connect_from_port_20=YES 
 	idle_session_timeout=600 
 	data_connection_timeout=300 
 	pam_service_name=vsftpd 
 	listen=NO 
 	local_root=/srv/ftp 
	

Nun muss der Dienst noch gestartet werden. Dazu wird die Datei /etc/inetd.conf wie folgt abgeändert:

         #ftp    stream tcp    nowait  root   /usr/sbin/tcpd   in.ftpd
         ftp     stream tcp    nowait  root   /usr/sbin/tcpd   vsftpd

Außerdem muss der Dienst "inetd" gestartet werden (rcxinetd start).

Damit steht der FTP-Server zur Verfügung, und wechselt immer in das Verzeichnis /srv/ftp, sowie sich ein Benutzer anmeldet. Ein Onlineupdate können Sie nun unter YaST durchführen indem Sie als Server "ftp://10.24.10.1/suse" angeben. [Anfang]

NFS - Network File System

Da bei dem NFS-Protokoll keine Authentifizierung vorgesehen ist, es handelt sich hierbei um ein altes Protokoll wo dieses noch keine Rolle spielte, werden keine Zugriffe auf die Daten erlaubt werden. Alleine das Verzeichnis für die SuSE-CDs und die Updates werden freigegeben. Das Einrichten des NFS-Servers geschieht unter YaST/Netzwerkdienste/NFS-Server. Dort wurden das bereits vorhandene Verzeichnis wie folgt eingebunden:

         /srv/ftp/suse/			*(ro,all_squash,sync)

Damit wird der NFS-Server beim Starten des Rechners automatisch mit gestartet. Das freizugebenden Verzeichnis befinden sich dann in seiner Konfigurationsdatei /etc/exports. Das Verzeichnis /srv/ftp/suse wurde dabei nur Read-Only freigegeben, da sich dort die Installations-CDs und die Updates befinden. Auf der Seite des NFS-Clients ist das zu mountende Laufwerke, in der Datei /etc/fstab aufgenommen worden mit:

         10.24.10.1:/srv/ftp/suse  /server/suse  nfs  ro,suid,dev,exec,auto,user,sync  0  0

Natürlich können Sie diese auch über YaST/Netzwerkdienste/NFS-Client eintragen. Die Verzeichnisse in die NFS die Dateien mountet, müssen bereits vorhanden sein. Das heißt, sie müssen bevor sie die Verbindungen herstellen das Verzeichnis /server/suse angelegt haben.

Weiterführende Informationen sind im Internet unter www.linuxfibel.de/nfs_srv.htm und www.linux-user.de/ausgabe/2002/03/082-nfs/linux-user-nfs-7.html verfügbar.

Wenn nun der Clientrechner gestartet wird, werden beim Bootvorgang die Verzeichnisse automatisch mit eingebunden. Dieses führt natürlich zu Wartezeit, falls der Server nicht erreichbar sein sollte, bevor der Bootvorgang weiter ausgeführt wird. Und was ist mit einem Laptop?

Es gibt nun einige Möglichkeiten für dieses Problem. Zu einem können Sie mittels fcron diesen Startvorgang verlegen, oder die Verbindung manuell herstellen wenn diese auch benötigt wird. Hier wird die letztere Möglichkeit beschrieben. Für beide Möglichkeiten müssen Sie erst einmal den NFS-Client aus dem Bootvorgang entfernen, indem Sie mit YaST/System/Runlevel-Editor den Dienst "nfs" deaktivieren. Die Einträge in der /etc/fstab dürfen dabei nicht gelöscht werden!

Um die Verbindung zu verwirklichen muss sichergestellt sein, das alle Benutzer auch die Möglichkeit besitzen, diese Laufwerke zu mounten. Dieses darf eigentlich nur root oder das System. Deswegen wird mit dem Programm "visudors" diese Rechte vergeben.

 sudors-File  
         # sudoers file. 
         # 
         # This file MUST be edited with the 'visudo' command as root. 
         # 
         # See the sudoers man page for the details on how to write a sudoers file. 
         # 
         # Host alias specification 
         # User alias specification 
         # Cmnd alias specification 
         Cmnd_Alias NFSMOUNT = /usr/sbin/rcnfs 
         Cmnd_Alias MOUNT = /bin/mount 
         Cmnd_Alias UMOUNT = /bin/umount 

         # Defaults specification 
         # User privilege specification 
         root    ALL=(ALL) ALL 
         {user}  ALL=NOPASSWD:NFSMOUNT  
         {user}  ALL=NOPASSWD:MOUNT 
         {user}  ALL=NOPASSWD:UMOUNT 

         # Uncomment to allow people in group wheel to run all commands 
         # Same thing without a password 
	

Ob man hierbei auf die Passworteingabe verzichtet (NOPASSWD), wie in dieser Datei eingestellt, sollte sich jeder Administrator genau überlegen. Weiterführende Informationen zu dem Programm "sudo" sind unter www.linux-user.de/ausgabe/2002/05/084-zubefehl/sudo.html zu erhalten. Der Eintrag {user} ist dabei gegen Ihren Benutzeraccount auszuwechseln.

Wenn Sie weitere Informationen zu der Handhabe von NFS-Verbindungen haben möchten, lesen Sie bitte die Artikel Netzgeflüster unter GNU/Linux SuSE mit KDE 3.x sowie den Artikel Laptopinstallation mit SuSE Linux 8.2 und 9.0. In diesen Artikeln finden Sie unter anderem beschrieben, wie Sie den Startvorgang beschleunigen können oder die NFS-Verbindundungen über Icons darstellen können. [Anfang]

Samba

Um auch Windows-Rechnern eine Möglichkeit zu bieten auf diesen Server zuzugreifen wird das SMB-Protokoll auf dem Server eingerichtet. Bei dieser Installation wird eine Arbeitsgruppe eingerichtet und kein Domaincontroller. Samba besteht aus drei Diensten. NMB ist der Samba Netbios Names Services der für die Namensauflösung zuständig ist, wenn das NetBios-Protokoll zum Einsatz kommen sollte. Dieses Protokoll wurde in der Testumgebung weder auf einem 98'er noch einem XP-Rechner installiert, sondern nur TCP/IP, und somit entfiel die Aktivierung von diesem Dienst. SMB ist der File-, und Druck-Server von Samba der auf dem Server läuft. Dann gibt es noch den SMBFS der für den Import der remote SMB-Shares verantwortlich ist und auf den Linux-Clients laufen muss.


Die Samba-Configuration wird abgespeichert unter /etc/samba/smb.conf. Dort ist auch die Datei smbpasswd enthalten, wo die Benutzer, die auf Samba zugreifen dürfen, hinterlegt werden. Um diese Benutzer anzulegen müssen Sie, mit Rootrechten, das Programm "smbpasswd -a {user}" aufrufen und anschließend das Passwort für den Benutzer zwei mal angeben. In der Datei smbfstab sind alle Shares einzutragen, die beim Starten des SMB-Dienst von anderen Quellen einzubinden sind. In diesem Beispiel wird davon kein Gebrauch gemacht. Auf dem Linux-Client muss nur einmal der Samba-Client aufgerufen werden, um die Arbeitsgruppe einzutragen. Kontrollieren Sie anschließend ob die Dienste auch gestartet wurden.

Wenn Sie ein 98'er-System einsetzen, so müssen Sie dort einen Benutzer "testuser" anlegen, da bei dem Zugriff auf den Share nur noch das Passwort abgefragt wird. Bei XP hingegen können Sie hierauf verzichten, da Sie dort auch den Benutzer eingeben können.

 /etc/samba/smb.conf 
[global] 
workgroup = TUX-NET 
printing = cups 
printcap name = cups 
printcap cache time = 750 
cups options = raw 
printer admin = @ntadmin, root, administrator 
username map = /etc/samba/smbusers 
map to guest = Bad User 
include = /etc/samba/dhcp.conf 
logon path = \\%L\profiles\.msprofile 
logon home = \\%L\%U\.9xprofile 
logon drive = P: 
add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$
domain logons = No 
domain master = No 
passdb backend = smbpasswd 
security = user 

 [printers] 
 	comment = All Printers 
 	path = /var/tmp 
 	printable = Yes 
 	create mask = 0600 
 	browseable = No 

 [print$] 
 	comment = Printer Drivers 
 	path = /var/lib/samba/drivers 
 	write list = @ntadmin root 
 	force group = ntadmin 
 	create mask = 0664 
 	directory mask = 0775 

 [suse] 
 	comment = Novell SuSE Installationsmedien 
 	inherit acls = No 
 	path = /srv/ftp/suse/ 
 	read only = Yes 

 [testuser] 
 	comment = Home von testuser 
 	inherit acls = Yes 
 	path = /home/testuser/ 
 	read only = No 

 [dokumente] 
 	comment = Serverablage für Dokumente 
 	inherit acls = Yes 
 	path = /srv/ftp/documente/ 
 	read only = No 

 [programme] 
 	comment = Serverablage für Programme und Scripte 
 	inherit acls = Yes 
 	path = /srv/ftp/programme/ 
 	read only = No
	 

[Anfang]

VNC - Virtual Network Computing

Wenn Sie an ihrem Server eine kleine Änderung vornehmen wollen, so müssen Sie sich immer am Server befinden. Um diesen Gang zu ersparen wurde das VNC entwickelt. Mit diesem Programm können Sie von jedem Rechner aus, auf dem ein VNC-Clientprogramm installiert ist, ihren Server administrieren unter einer grafischen Oberfläche. Die folgenden Programme befinden sich im Verzeichnis /usr/X11R6/bin:

                         vncserver               Serverstartprogramm 
                         vncpasswd               Passworterstellung 
                         vncviewer               Clientzugriffsprogramm 

Eine Dokumentation ist in das Verzeichnis /usr/share/doc/packages/vnc vorhanden. Rufen Sie dort die Datei "index.html" auf, um die komplette Dokumention einzusehen. Um den Vncserver zu starten müssen Sie angemeldet sein und den Programmstart mit Root-Rechten ausführen. Da es aber widersinning ist, auf dem Server ständig einen aktiven Benutzer zu haben, wird Ihnen hier die Möglichkeit dargestellt, dieses als Demon laufen zu lassen.

Hierzu wurde ein normaler Useraccount "testuser" angelegt. Nachdem das Programm "vncserver" in einem Terminal zum ersten mal gestartet wurde, werden Sie nach einem Passwort gefragt. Diese Passwortdatei liegt anschließend unter $HOME/.vnc/passwd und ist verschlüsselt. Wenn Sie einmal ihr Passwort vergessen haben, können Sie diese Datei löschen. Beim nächsten Aufruf vom Vncserver werden Sie nach einem neuen Passwort gefragt. Oder Sie rufen das Program "vncpasswd" auf und geben ein neues Passwort ein. Dieses Passwort für den VNC-Zugriff muss nicht unbediengt dem Passwort des Account "testuser" entsprechen.

In diesem Verzeichnis wird eine weitere Datei "xstartup" erzeugt, die die Parameter für die Remoteconsole enthält. Die aktuelle LOG-Datei der Sitzung befindet sich ebenfalls in diesem Verzeichnis. In der Datei "xstartup" legen Sie fest, wie das Remoteterminal auszusehen hat. Standartmäßig wird die Remoteconsole mit dem Desktop twm gestartet. Da dieser Desktop nicht gerade Anwenderfreundlich ist, können Sie dieses mit dem Eintrag "kde &" ändern.

Installation einer VNC-Conection beim Systemstart.

Hier gibt es zwei Möglichkeiten. Die erste wäre, das der Vncserver beim Einloggen sofort Rootrechte besitzt um den Rechner zu administrieren. Siehe hierzu www.linuxnetmag.com/de/issue8/m8installation801.html und den Nachtrag für SuSE 9.0 unter www.linuxnetmag.com/de/issue9/m9netzwerkinst.html

Die zweite Möglichkeit die hier zur Anwendung kommt ist die, das ein Vncserver in einem UserSpace gestartet wird. Damit hat der Benutzer der den Vncserver aufruft, zuerst nur die Rechte eines normalen Benutzers. Wenn er dann Rootrechte auf dem Server benötigt, muss er sich diese zusätzlich erst holen. Tragen Sie dazu mit Rootrechten in die systemweite fcrontab die Zeile ein:

 	3 @ testuser /usr/X11R6/bin/vncserver -geometry 800x640 -name server.earth.de :1 

Da beim Start des Systems nur der Rootuser angemeldet ist, führt dieser das Kommando su aus um in den Userspace des Users zu kommen. Da der User "root" den Befehl su aufruft, muss kein Passwort bei su eingegeben werden. Nun wird der Vncserver dort gestartet und die dortigen Config-Dateien eingelesen.

Hier wird der Server mit dem Parameter :1 als Displaynummer gestartet. Damit wird erreicht, das nur ein Server läuft. Dieses hat noch den Vorteil das der Serverport 5900+Displaynummer fest vorgegeben ist und vom Vncserver benutzt wird, so das genau diesen Port beobachten werden kann. Wenn der Server herunter gefahren wird, wird das aktuelle LOG-File im Verzeichnis /home/testuser/.vnc an das LOG-File in /var/log/vncserver angehängt und anschließend gelöscht.

Rufen Sie am Client, in einem Terminal, das Programm "vncviewer servername:Displaynummer" auf. Nach der Eingabe des Passworts haben Sie dann die Verbindung zum Server. Da die Übertragung der Daten aber unverschlüsselt ist, sollte der Vnc-Server nur über eine SSH-Verbindung betrieben werden. Nachdem Sie eine Verbindung mit "ssh -L 5901:Servername:5901 Servername" hergestellt haben, können Sie mit "vncviewer localhost:1" den Desktop starten.

Hier ist das Vorgehen noch einmal tabelarisch aufgeführt:

	"testuser" anlegen 
 	Sich als "testuser" anmelden 
 	Im HOME-Verzeichnis das Programm "vncserver :1" aufrufen. 
 	   Das Passwort für den Remotezugriff zwei mal eingeben. 
 	   Auf die Frage, ob nur ein Read-Only-Passwort vergeben werden soll mit n beantworten 
 	Den nun gestartetet Server mit "vncserver -kill :1" beenden 
 	Den Eintrag "twm" in der Datei $HOME/.vnc/xstartup gegen "kde" auswechseln
 	In den Benutzer Root wechseln 
 	"fcrontab -e" aufrufen und den Eintrag vornehmen
  	   "3 @ testuser /usr/X11R6/bin/vncserver -geometry 800x640 -name server.earth.de :1"
	Mit "init 1" den X-Server und das Netzwerk herunterfahren 
 	Mit "init 5" das System wieder starten 

Wenn Sie SuSE 9.3 als Server einsetzen, so werden Sie fest stellen das der Client die Datei "kstartupconfig" nicht findet da der Verzeichnispfad auf diese Datei nicht im User-Environment vorhanden ist. Um dieses zu beheben fügen Sie als zweite Zeile in der Datei ~/.vnc/xstartup die Zeile "PATH=$PATH:/opt/kde3/bin" ein und starten den Vncserver neu.

Eine nette Möglichkeit des vncviewers noch zum Schluß: Wenn Sie den Viewer mit den Parametern "vncviewer -shared server:1" aufrufen, so können Sie dieses von belibig vielen Rechnern aus machen und alle erhalten den gleichen Bildschirm. Aber alle haben auch die gleiche Maussteuerung. Wenn Sie den Aufruf mit -noshared vornehmen, nehmen Sie allen anderen Rechnern diesen Bildschirm weg, und nur Sie haben noch die Kontrolle. [Anfang]

SLP - Service Location Protocol

Der SLP ist ein relativ neuer Service in der Umgebung von Linux. Er soll dazu dienen, das ein Administrator Informationen über Dienste erhält, die auf anderen Rechnern aktiv sind. Es handelt sich also um ein reines Auskunftssystem für einen Administrator. Einige Programme wie Swat, NTP, SSH, Samba, VNC, Rsync und der Installationsserver haben diese Unterstützung bereits eingebaut. Für die Dienste, bei denen es noch nicht eingebaut ist, kann dieses mittels einer Konfiguration nachgeholt werden. Dazu muss der Dienst SLPD natürlich auch auf allen Rechnern gestartet werden. Um dies gleich beim Booten des Systems einzutragen, geben Sie mit Rootrechten, "insserv slpd" ein. Den Dienst können Sie natürlich auch mit "rcslpd start/stop" Ein-, und Abschalten. Weitere Informationen finden Sie unter www.openslp.com oder im Administrationshandbuch. Aufgelistet finden Sie Datei des Installationsservers /etc/slp.reg.d/YaST-9.3.reg und des manuell angepassten SAMBA-Servers.

 /etc/slp.reg.d/YaST-9.3.reg 
	service:install.suse:nfs://10.24.10.1/srv/ftp/suse/9.3,en,65535
	defaultbase=i386
	description=SUSE LINUX Version 9.3 ++SuSE-Linux-Professional-i386++
	label=SUSE LINUX Version 9.3
	machine=i386,i486,i586,i686
	vendor=SUSE LINUX AG
	version=9.3
	
	# Register the samba server, if it is running
	service:smb://$HOSTNAME,en,65535
	tcp-port=139
	description=Samba Datei und Print Server
	description=suse - ist das Installationsverzeichnis  
	description=dokumente - ist die Ablage
	description=programme - Verzeichnis für unterschiedliche Programme
	

[Anfang]

Cups

Leider richtet das Installationsprogramm von SuSE nicht alle notwendigen Benutzer für cups mit ein. Auch wenn Sie später einen Benutzer hinzufügen, kann cups diesen noch nicht kennen. Dieses merken Sie daran, das Sie den Drucker nur mit Rootrechten verwalten können. Um auch dem normalen Benutzer die Möglichkeit zu geben den Drucker zu administrieren, müssen Sie cups die Benutzer manuell mitteilen. Diese geschieht mit der Eingabe von "lppasswd -g sys -a {Benutzername}". Anschließend werden Sie zu einer Passworteingabe aufgefordert die nur für cups gilt. Der Einfachheit halber sollte mann hier allen Benutzern das gleiche Passwort geben. Bei diesem Passwort muss mindestens eine Zahl enthalten sein. Die Passwörter werden in der Datei /etc/cups/passwd.md5 gespeichert. [Anfang]

Krusader - ein grafischer MC-Clone

Krusader ist ein grafischer MC-Clone für die KDE-Oberfläche. Das Programm steht dann unter KDE/Programme zur Verfügung. Weiter Informationen finden Sie unter krusader.sourceforge.net. Um die vielfältigen Möglichkeiten des Programms zu nutzen, sollten die Pakete kdesdk3, kdiff3, rar, krename, lha, unarj und unace nachinstalliert werden. Dabei enthält das Paket kdesdk3 das Programm "kompare". Das Paket kdiff3 ist auf der DVD vorhanden. Das Programm "rar" kann aus dem Internet geladen werden: rar-3.5.0-0.pm.0.i586.rpm von packman.links2linux.de.Wenn Sie mit dem Krusader RPM-Files installieren wollen, so können Sie dieses unter "Datei/(rechte Maustaste)/Konqueror Menü/Actions/mit YaST installieren".[Anfang]

Verschlüsselte Dateien

Ein Wort vorweg. Wenn Sie verschlüsselte Dateien anlegen, so Informieren Sie sich vorher ob dieses nach den nationalen Gesetzen erlaubt ist. Wenn Sie mit einem Laptop verreisen, so Informieren Sie sich vorher, ob Sie verschlüsselte Dateien und die darin erhaltenen Kryptografieverfahren einführen und auch anschließend wieder ausfüren dürfen. Hier gibt es viele nationale Unterschiede auch im Bereich Europas.

Ein verschlüsseltes Dateisystem wird automatisches beim Start gemountet, wenn die Datei /etc/cryptotab belegt ist. Diese Datei ist analog zu /etc/fstab aufgebaut. Standardmäßig wird für die Partition des Modul twofisch benutzt. Dieses Modul muss mit "modprobe loop_fish2" geladen worden sein, sonst ist ein Zugriff nicht möglich und das Paket "libmcrypt" muss installiert worden sein. Ob das Modul loop_fish2 geladen wurde, können Sie mit dem Befehl /sbin/lsmod überprüfen. Der Aufbau der Datei /etc/cryptfile ist dabei:

        Device      Pfad-Cript-File  Mountpoint  Filesystem  Encryption  Parameter
        /dev/loop0  /tmp/.secur      /mnt        ext3        twofish     default

Beim Starten wird die Datei /etc/init.d/boot.crypto abgearbeitet. Wenn die cryptotab leer ist wird dieser Punkt beim Startprozess übersprungen. Ansonsten wird bereits beim Booten nach einem Passwort gefragt, wobei das System solange stehen bleibt, bis ein Passwort eingegeben wurde. Gemountet wird dieses System mit zwei Befehlszeilen. Wobei das Programm losetup bereits eine Passwortabfrage vornimmt. In der ersten Zeile wird ein neues Device in das System eingehängt. Aber erst nach dem mounten dieses Devices, ist es möglich auf den Inhalt der verschlüsselten Systems zuzugreifen.

        losetup -e twofish /dev/loop0 /Pfad-Crypt-File      Device einhängen
        mount -t ext3 /dev/loop0 Pfad                       Mountpiont einhängen

Dismountet wird das System mit den Befehlszeilen:

        umount /Pfad-Crypt-File         Mountpoint haushängen
        losetup -d /dev/loop0           Device freigeben

Wie bereits erwähnt können Sie alternative auch in der /etc/fstab die Einträge vornehmen. Dazu muss sichergestellt sein das das Modul geladen ist. Z.B in dem Sie in der Datei /etc/init.d/boot.local die Zeile "modprobe loop_fish2" eintragen. Daraus kann sich folgender Beispieleintrag ergeben:

	/daten/.security /mnt  ext3  loop,encryption=twofish  noauto,user

Während Sie unter SuSE 8.1 mit Yast2 nur verschlüsselte Partitionen anlegen konnten, ist diese Option ab SuSE 8.2 erweitert worden. Sie können nun dort auch verschlüsselte Dateien anlegen. Dazu wählen Sie unter YaST/System/Partionieren eine Partition aus, auf der Sie die Datei enlegen möchten. Über den Button "Kryptodatei" kommen Sie in ein Folgemenü, wo alle Parameter für dieses Datei angegeben werden können. Wenn Sie hier keinen Mountpoint angeben, so wird auch nur die Datei selbst erzeugt.

Das Modul loop_fish2 muss zu diesem Zeitpunkt geladen sein, damit eine Verschlüsselung vorgenommen werden kann. Anschließend noch ein chmod {Benutzer} auf die verschlüsselte Datei, da sonst nur root den Zugriff auf diese Datei besitzt./

In dieser verschlüsselten Datei sollte ein Verzeichnis angelegt werden unter dem zukünftig alle Daten abgelegt werden. Wenn dieses Verzeichnis nicht existiert, ist es später nicht erkennbar ob die Datei geladen wurden, da die verschlüsselte Datei in ein normales Verzeichnis gemountet wird.

Weiter Informationen finden Sie unter:
sdb.suse.de/de/sdb/html/jsj_crypto_filesystem_mini_howto.html
www.suse.de/de/private/support/howto/crypto
www.linux-magazin.de/artikel/ausgabe/2001/11/crypto/crypto.html
Linux-user 7/2003 Seite 42. Abgesperrter Datenbereich

Besonders lesenswert ist der Artikel http://www.heise.de/security/artikel/41202 der die technische Unmöglichkeit der Entschlüsselung behandelt.

Zum Abschluß noch einige Sicherheitsaspekte: Sie würden keine verschlüsselte Datei anlegen, wenn Sie nicht der Meinung wären, das Sie diese benötigen. Damit bei einem Verlust des Laptops, es dem Unbekannten erschwert wird, Rückschlüsse aus den Daten zu ziehen, sollten Sie alle Cache-Daten, wie z.B. der Downloadmanager von Mozilla, in das /temp-Verzeichnis legen. Für das Tmp-Verzeichnisse können Sie den Löschintervall anpassen. Dazu gehen Sie in den Sysconfigeditor unter System/Cron/MAX_DAYS_IN_TMP=1 (tägliches löschen) so wie System/Cron/CLEAR_TMP_DIRS_AT_BOOTUP=yes (beim hochfahren löschen).

Eine weitere Möglichkeit ist die Speicheraufrüstung auf mind. 512MB. Danach können Sie in der /etc/fstab die Swap-Partition ausschalten mit einem vorrangestellten "#". Wenn Sie nun den Laptop rebooten und die Swap-Partition anschließend einmal neu formatieren, sind auch hier alle alten Daten gelöscht.

Um eine einfache Möglichkeit zu erhalten, bei Bedarf, die verschlüsselte Datei, einzubinden, wurden die nachfolgende Script erstellt die sich am Ende des Artikels befinden. Das Script für SuSE 9.1 lädt alle notwendigen Module die zum Betrieb notwendig sind. Damit das Rootpasswort zum mounten der Datei nicht mehr eingegeben werden muss, wird hier ein Eintrag in /etc/sudoers erstellt. Sie müssen nur noch das Passwort eingeben um die Entschlüsselung zu starten. Um zu erkennen ob die Datei bereits eingehängt wurde, wird ein entsprechendes Icon auf den Desktop erzeugt. Beim schließen der Datei, werden auch die notwendigen Module wieder entladen und das Icon ändert sich.

Für die Version von SuSE 9.3 wurden einige Änderungen eingebaut. Hier können Sie dem Script einen individuellen Namen geben, den Sie dann noch in die Variablen eintragen müssen. Desweiteren können Sie einen bestimmten Benutzer eingeben der dieses Script und damit seine verschlüsselte Datei benutzen soll. Das Verzeichnis in dem die verschlüsselte Datei eingehängt werden soll, wird dabei bei jedem Aufruf neu erstellt und beim beenden wieder gelöscht. Dadurch ist es leichter zu erkennen, ob die Datei eingehängt worden ist. Falls Sie eine ältere verschlüsselte Datei weiter benutzen möchten, tauschen Sie im Script den Eintrag "twofish256" gegen "twofish" aus womit Sie dann ihre ältere Datei weiter benutzen können. Das Script für SuSE 9.3 sieht ein wenig unübersichtlich aus. Dieses ist leider nötig, da die Shell einige Probleme mit White-Spaces hat.

Bei der Version 9.3 ist die Datei "libmcrypt" nicht mehr nötig, da diese durch andere ersetzt wurde. Nachdem Sie die verschlüsselte Datei erzeugt haben, müssen Sie diese zuerst unmounten mit "umount /dev/loop0" und das Loopdevice aushängen mit "losetup -d /dev/loop0". Da YaST diese Datei so eingerichtet hat, das diese beim Start mit aktiviert wird, und damit beim Start des Systems nach dem Passwort gefragt wird, entfernen Sie den Eintrag in der Datei "/etc/cryptotab" oder löschen die Datei komplett.

Nun noch mit Rootrechten der verschlüsselte Datei auf den Benutzer übertragen mit "chown {Benutzer}:{Gruppe} Datei" und die Rechte setzen mit "chmod 600 Datei". Nun können Sie das Script aufrufen mit "loopdevice-{Benutzer} install" und die verschlüsselte Datei steht ab sofort für den Benutzer zur Verfügung. Darauf zugreifen tun Sie mit "sudo /usr/local/bin/loopdevice-{Benutzer}. [Anfang]

Die Nvidia-Grafikkarten

Besitzer einer Nvidia-Grafikkarte ist es sicherlich schon einmal passiert, das Sie nach einem Kernel-Update keine grafische Oberfläche mehr haben. Das hängt damit zusammen, das der Nvidia-Treiber neu eingebunden, bzw. der aktuelle Treiber installiert werden muss. Wenn Sie nun wie gewohnt unter YaST-Onlineupdate diesen Treiber installieren wollen werden Sie diese Auswahl nicht mehr sehen, falls Sie den Treiber bereits einmal installiert hatten. Aber auch hierfür gibt es einen Trick.

Sie gehen in YaST in das Online-Update und stellen dort die Patch-Kategorie um auf "Installierbare und installierte Patche" um. Nun können Sie wieder auf den Eintrag für die Nvidia-Grafikkarte zugreifen. Dort wählen Sie mit der rechten Maustaste "Aktualisieren" aus und können nun die aktuelle Version über das Internet installieren. [Anfang]

Löschen von benutzerabhängigen TMP-Dateien

Während systemweite TMP-Verzeichnisse in "TMP_Dirs_to_Clear" mit einem Eintrag im Sysconfigeditor "System/Cron/Max_Dirs_in_tmp=1" täglich gelöscht werden können, ist dieses für benutzerabhängige Verzeichnisse nicht vorgesehen. Deswegen wurde ein Script entwickelt, welche in fcron eingestellt wurde. Zur einfache Bearbeitung der Einträge wurde auch hierfür wieder ein Eintrag für den Sysconfig-Editor erstellt.

 /etc/sysconfig/clear_user_tmp
	## Path:	      Other/User-Tmp
	## Description:	      Dateien in $HOME die automatisch gelöscht werden sollen.
	## Type:	      string
	## Default:	      ""
	#
	# Geben Sie hier die lokale Benutzerdateien oder Verzeichnisse an die automatisch 
	# gelöscht werden sollen.
	# Z.B.: "tmp/* .Altdocs/* tempor.dat"
	#
	TAB=""
	
 /usr/local/bin/clear_user_tmp 
	#! /bin/sh
	# Script zum löschen von temporären Dateien im Home-Verzeichniss
	# Günther Zander, Dez. 2004
	# Eintragen als Fcron-Job mit: @ 3 /usr/local/bin/clear_user_tmp
	
	# Tabelle der Verzeichnisse und Dateien
	. /etc/sysconfig/clear_user_tmp

	for a in `ls /home`
	do
  	  for b in $TAB
  	  do
    	    rm -R /home/$a/$b
  	  done 
	done
	

[Anfang]

SuSE 9.3

Nach einem Onlineupdate von SuSE 9.3 war plötzlich mein KDE-Desktop verschwunden und der X-Server wurde mit TWM gestartet. Da mir dieses natürlich nicht gefiehl wurde in ein Terminal gewechselt (ALT+STRG+F1) und sich dort mit Rootrechten angemeldet. In der Datei /etc/sysconfig/displaymanager wurde der Wert der Variablen DISPLAYMANAGER wieder auf "kdm" eingestellt und in der Datei /etc/sysconfig/windowmanager der Wert der Variablen DEFAULT_WM auf "kde" gesetzt. Nun noch einmal "init 3" um den X-Server abzuschalten um anschließend mit "init 5" diesen wieder zu starten. [Anfang]

Evolution

Um aus Evolution heraus nicht immer den Internet-Link kopieren zu müssen, um auf die Website zu gelangen, kann man einmal hier einen Browser eintragen "gconf-2 --set /desktop/gnome/url-handlers/http/command -t string 'mozilla %s'". Um eine Datensicherung von Evolution durchzuführen, müssen Sie folgende Daten kopieren:

 
 	~/evolution/*  
 	~/.gnome2/accels/evolution  
 	~/.gnome2_private/Evolution  
 	~/.gconf/apps/evolution/* 

[Anfang]

Nützliche Programme Um auf nützliche Programme schneller zugreifen zu können, wurde die Programme der Gruppe "Programme" zugefügt.

 	/opt/kde3/bin/kmenuedit			Der Menüeditor 
 	/opt/kde3/bin/Keditbookmarks 		Bookmarks der unterschiedlichen Browser bearbeiten 

Das Programm Keditbookmarks greift damit auf die Dateien der Browser zu. Beim Mozilla stehen diese unter " ~/.mozilla/default/???.slt/bookmarks.html" und beim Konqueror unter " ~/.kde/share/apps/konqueror/bookmarks.xml"

Um nicht ewig beim betätigen der Druck-Taste einen komplette Bildschirm-Screen zu erhalten, können Sie auf der Taste Druck das Programm Ksnapshot eintragen, welches auch Bereiche des Bildschirmes kopieren kann. Um dieses Programm einzurichten rufen Sie das Programm "kmenuedit" auf und tragen unter Dienstprogramme/Desktop/KSnapshot die Taste Druck ein. [Anfang]

Zweite DVD/CD

Wenn das zweite DVD-LW nicht erkannt wird, müssen die Rechte genauso gesetzen werden wie für das erste Laufwerk. In diesem Beispiel mit "chgrp users /dev/hdd". Nun kann auch jeder Anwender mit beiden LWs arbeiten. Ansonsten konnte es nur Root. [Anfang]

Docking-Station

Wie es so ist im Leben, wenn man einen Computer hat, kommt meistens noch einer hinzu. Aus diesem Grunde war es nötig, einen Laptop über einen elektronischen Umschalter zu betreiben. Aber der Laptop "Toshiba Satellite 1110-Z20" verfügt nicht über alle notwendigen Schnittstellen, so das eine "Docking Station" installiert werden musste.

Hierbei wurde sich für das Modell "Digitus Connect USB 2.0 Docking Station" entschieden. Dieses Gerät wird mittels eines USB-Kabels mit dem Laptop verbunden und stellt anschließend folgende Geräte bereit:

	1x PS2-Maus
	1x PS2-Keyboard
	1x Seriell SubD-9
	1x Parallel SubD-25
	1x Netzwerk 10/100MBit
	2x USB 2.0

Nach dem Einstecken des Kabels, steht die Station unter SUSE 9.1 sofort zu Verfügung.

Keyboard und Maus: Die Maus wird über einen Treiber "Cypress PS2toUSB KBM Bridge" betrieben und als eine Standard-USB-Maus generiert. Die einzige "Macke" bei dem Betrieb mit der Station trat mit der Maus auf. Mitunter entwickelt der Mauszeiger ein Eigenleben, und wandert unberechenbar über den Bildschirm. Nachdem aber die ESC-Taste einmal gedrückt wurde, tat sie wieder das was sie sollte. Über diesem Weg wurde auch die Tastatur als normale USB-Tastatur erkannt und eingebunden.

Drucker: Der Drucker kann über die neue Schnittstelle /dev/usb/lp0 normal mittels Yast installiert werden, da hier ein "Prolific IEEE-1284 Controller" in der Station seinen Dienst tut.

Restlichen Ports: Noch verbleibenden Ports sind für USB 2.0 "Prolific PL2301", Seriell "Prolific PL2303", Modem "Docking AX88172" und die USB-Netzwerkkarte. Diese Ports wurden hier noch nicht getestet.

Monitor: Der Monitor der über die Umschaltbox angeschlossen ist, war mit dem installierten ATI-Grafiktreiber "ATI Readon LY" nicht dazu zu bewegen, den Laptopbildschirm vernünftig darzustellen. Es wurde immer ein virtueller Bildschirm angezeigt, der über die physischen Grenzen des Monitors hinausging. Erst als der Grafiktreiber auf "VESA-BIOS Graphics" umgestellt wurde, arbeitete der Monitor wie gewohnt. Dieses hat zur folge, das die 3D-Option nicht mehr aktiviert werden kann. [Anfang]

Towitogo Kartenleser fürs Online Banking mit Moneyplex

Für den Cardreader "Chipdrive micro 110 V4.30" muss der Towitoko-Driver von www.geocities.com/cprados , hier in der Version towitoko-2.0.7.tar.gz, herunter geladen werden.

Compiliert wird dieser, nach dem entpacken, mit "./configure && make && make install". Nun steht ein Programm /usr/local/towitoko/bin/tester zum Testen des Kartenlesers bereit.Nach der Installation der Pakete libchipcard und libchipcard-tools stehen unter KDE auch grafische Programme zum lesen der Karten zur Verfügung.

Mit "hbcicard dump -p {PIN}" können nun viele Daten angesehen werden. Sollte die Pin nur 4-stellig sein, so sollten Sie dieses nun auf 5 Stellen ändern. Da Moneyplex nur mind. 5 Stellen akzeptiert. Dieses können Sie entweder am Terminal der Bank oder an Rechner mit "hbcicard chgpin -p {PIN} -P {neue PIN}".

Damit Moneyplex auch mit diesem Kartentreiber zusammenarbeitet, muss der Treiber nochmals compiliert werden mit "./configure -enable-win32-com && make && make install". Nun noch die Pakete openhbci und Moneyplex installieren und das wars fürs erste. Mit dieser Compilerung können Sie mit hbcicard nicht mehr auf die Karte zugreifen, nur noch mit Moneyplex. D.h. auch die Programme zum Auslesen der Karte von der Krankenkasse (kmedicalcard) lassen sich nicht mehr benutzen. Der Kartentreiber für Moneyplex steht nun unter /usr/local/towitoko/lib/libtowitoko.so zur Verfügung.

In der Firewall muss noch der HBCI-Service, Port 3000, freigegeben werden.

	FW_ALLOW_INCOMING_HIGHPORTS_TCP -> "HBCI" hinzufügen.
	FW_ALLOW_INCOMING_HIGHPORTS_UDP -> "HBCI" hinzufügen.

Die Parameter für das Programm stehen in der Datei ~/moneyplex/start. Falls Sie das Verzeichnis einmal verlegen sollten, so müssen Sie den Parameter APPPATH in der Datei moneyplex/start anpassen. [Anfang]

Creative Labs USB-Webcam "Webcam 5" installieren

Um zu erfahren ob die eigene Webcam von dem Treiber "pwc" unterstütz wird, muss leider erste das Paket pwc-9.0.2.tar.gz herunter geladen und entpackt werden. Dann befindet sich eine Anleitung unter .../pwc-9.0.2/site/index.html. Das liegt unter anderem daran, das ab der Version SuSE 9.1 der Treiber nicht mehr standardmäßig im Kernel vorhanden ist. Dieses soll aber in der nächsten Kernelversion rückgängig gemacht werden, so das der Treiber dann wieder Standardmäßig vorhanden ist.

Aber das nützt heute noch nichts. Zuerst muss ermittelt werden, um welche Webcam es sich handelt. Dazu wurde das Device ausgelesen mit dem Befehl "grep ^P /proc/bus/usb/devices". Als Ausgabe wurde geliefert "-> P: Vendor=041e ProcID=400c Rev=0.02. Damit war sichergestellt, dass das Modul PWC diese Webcam auch unterstützt. Eine Liste der unterstützten Webcams siehe unter .../pwc-9.0.2/site/index.html.

Die Pakete pwc-9.0.2.tar.gz und pwcx-9.0.tar.gz wurden von http://www.smcc.demon.nl/webcam herunter geladen. Nun müssen noch einige Programme gcc, make, ncurses, ncurses-devel, qt3-devel, libpng-devel und die kernel-source über YaST installiert werden. Dabei wird ncurses angemeckert, so das dieses Paket zuerst downgegradet werden muss. Bei dem anschließenden Online-Update wird es dann automatisch upgedatet.

Um den Treiber zu installieren, muss der Kernel neu übersetzt werden, aber Dank einer deutschen Anleitung http://www.thjahns.de/linux/download/webcam.pdf stellt dieses kein großes Problem dar. Hier sind alle notwendigen Schritte aufgezeigt.

Als root in einem Terminal anmelden
Verzeichnis /tmp/webcam erstellen
pwc-9.0.2.tar.gz entpacken in /tmp/webcam
pwcx-9.0.tar.gz entpacken in /tmp/webcam

 cd /usr/src/linux 
 zcat /proc/config.gz > .config 
 make oldconfig 
 patch -p1 -s < /tmp/webcam/pwcx-9.0/patch-2.6.4 
 cp /tmp/webcam/pwcx-9.0/x86/libpwcx.a drivers/usb/media 
 cp /tmp/webcam/pwcx-9.0/pwcx/*.[ch] drivers/usb/media 
 cp /tmp/webcam/pwc-9.0.2/2.6/*.[ch] drivers/usb/media 

 make menuconfig  
     Code maturity level optios 
 	"Select only drivers expected to compile cleanly" ausschalten mit der Leertaste 
 	Exit  
     Device Drivers 
 	USB Support 
 	    "USB Philips Cameras" als Modul mit der Taste M aktivieren 
 	    "PWCX decompressor module" als Modul mit der Taste M aktivieren 
 	    Exit 
 	Exit 
     Exit 
     Do yo wish to save your new kernel configuration? (yes) 
 
 make modules moduls_install 

Nun ist die Zeit gekommen einen Kaffee trinken zu gehen. Die Compilierung dauert auf einem 2GHz-Rechner ca. 30 Minuten. Auf einem 700MHz-Rechner ca. 100 Minuten. Wenn die Compilierung abgeschlossen ist, wurde der Rechner einmal neu gestartet, um zu sehen ob alles noch funktioniert. Mit dem Befehl "lsmod | grep pwc" muss nun das Modul pwc angezeigt werden.

Nach dem Kompilieren werden auf der Error-Konsole (Strg+ALT+F10) einige Module angezeigt mit der Meldung "unsupported module, tainting kernel". Dieses soll wohl bedeuten, das SuSE nun den Support einstellt, da der Kernel geändert worden ist. Nach einem Kernelupdate kann es sein das alles noch einmal wiederholt werden muss. Da diese Schritte aber verscriptet werden können, stellt dieses kein Problem dar. Nun steht Ihnen als Benutzer das Programm Gnomemeeting mit der Webcam unterstützung zur Verfügung.

Um Ihnen die Installation zu erleichtern, wurden diese Schritte in einem Script abgelegt. Dieses Script muss in dem selben Verzeichnis liegen wie die PWC Downloads.

 pwc Installationsroutine 
 	#! /bin/sh 
	
 	# Installationsroutine für Pwc-Treiber für SuSE 9.1  
 	# Guenther Zander, July 2005 

 	# check Packages 
 	PACK="gcc make ncurses ncurses-devel qt3-devel libpng-devel kernel-source" 
 	CODE=0 
 	echo 

 	for i in $PACK 
 	do 
   	  rpm -q $i 
   	  # Errorcode 0 -> OK, !0 -> failed 
   	  if ! [ $? -eq 0 ]; then 
      		CODE=1 
   	  fi   
 	done 

 	if [ $CODE -eq 1 ]; then 
   	  echo 
   	  echo "Installieren Sie zuerst die fehlenden Pakete!" 
   	  exit 1 
 	fi 

 	# check root-user 
 	RUSER=`whoami` 
	RGROUP=`groups $RUSER | awk '{if ($1 == $RUSER); print $3}'` 

 	if ! [ "$RGROUP" = "root" ]; then 
     	  echo 
     	  echo "Starten Sie das Script als root!" 
     	  exit 1 
 	fi 
 	echo  

 	# aktuelles Verzeichnis ermitteln 
 	SDIR=`pwd` 

 	# Entpacken der Pakete 
 	cd /tmp 
 	mkdir webcam 
 	cd webcam 
 	tar -xzf $SDIR/pwc-9.0.2.tar.gz 
 	tar -xzf $SDIR/pwcx-9.0.tar.gz 

 	# Vorbereitungen 
 	cd /usr/src/linux 
 	zcat /proc/config.gz > .config 
 	make oldconfig 
 	patch -p1 -s < /tmp/webcam/pwcx-9.0/patch-2.6.4 
 	cp /tmp/webcam/pwcx-9.0/x86/libpwcx.a drivers/usb/media 
 	cp /tmp/webcam/pwcx-9.0/pwcx/*.[ch] drivers/usb/media 
 	cp /tmp/webcam/pwc-9.0.2/2.6/*.[ch] drivers/usb/media 

 	# Config manuell einstellen 
 	make menuconfig 

 	echo 
 	echo "Bitte geben Sie ein > cd /usr/src/linux <" 
 	echo "Bitte geben Sie ein > make modules modules_install <" 
 	echo 
	

Falls, aus welchem Grund auch immer, die beschriebenen Schritte wiederholt werden müssen, wurde sich zur Vorbereitung wie folgt beholfen:

	Mittels YaST die Kernel-Sourcen deinstallieren
	Die Verzeichnisse /tmp/webcam und /usr/src/linux/include/config/usb/pwc* löschen
	Die Dateien /usr/src/linux/drivers/usb/media/.pwc* und pwc* sowie libpwcx.a löschen
	Die Dateien /usr/src/linux/.tmp_versions/pwc*.mod löschen
	Mittels YaST die Kernel-Sourcen installieren
	Mittel YaST ein Onlineupdate durchführen

Für die SuSE-Versionen 9.2 und 9.3 gibt es eine andere Möglichkeit diese Treiber zu installieren. Unter der Internetseite http://grubald.free.fr befinden sich fertige RPM-Pakete die Sie herunter laden können. Dazu müssen Sie lediglich wissen, welche Kernelversion Sie installiert haben (rpm -q kernel-default). Die Installation erfolgt dann mittels dem Befehl "rpm -i {Datei}.rpm".

Wenn unter SuSE 9.3 bei Gnomemeeting die Fehlermeldung "Fehler bei Gconf-Schlüssel" erscheint, führen Sie ein Onlineupdate durch und installieren den WebCam-Treiber. Nach einem Reboot des Rechners sollten Sie Gnomemeeting normal einrichten können. [Anfang]

Psion Revo

Um unter SuSE 9.3 mit dem Psion arbeiten zu können, müssen die Pakete plptools-kde, plptools, klipsi und kpsion installiert werden. Die plptools bewirken, das mit dem Konqueror die Adresse "psion:/" eingegeben werden kann und somit der Psion, wie ein normales Laufwerk, behandelt werden kann. Das Paket "kpsion" stellt alle notwendigen Datensicherungsprogramme zur Verfügung. Und das Paket "klipsi" stellt eine remote Zwischenablage dar. Um den Psion unter dem Paket "kpsion" als Benutzer ansprechen zu können, muss die Erstinstallation des Psion unter dem Benutzer Root ausgeführt werden, da dann auch alle Zugriffsrechte gesetzt werden. [Anfang]

Kontact-Daten

Wo Sie die Daten der einzelnen Komponenten für Kontact finden können, sind in dieser Tabelle aufgeführt

KMail(9.1)~/Mail/* (9.3)~/.kde/share/apps/kmail/mail
~/.kde/share/apps/kmail/*
~/.kde/share/config/kmailrc
Adressbuch~/.kde/share/config/kaddressbookrc
~/.kde/share/apps/kabc/*
~/.kde/share/config/kresources/contact/*
Kalender und Aufgaben~/.kde/share/config/korganizerrc
~/.kde/share/config/kresources/calender/*
~/.kde/share/apps/korganizer/*
Notizen~/.kde/share/apps/knotes/*

[Anfang]

Der Autor

Zu Linux kam der Autor mit der SuSE 6.1 Distribution. Nach einem Studium der Elektrotechnik und den ersten Jahren als Programmierer, ist er heute als Systemadministrator und in der Projektierung tätig. Zu erreichen ist über die Linux User Group / Barmbeker Linux Stammtisch in Hamburg.


Scripte

 /usr/local/bin/loopdevice für SuSE 9.1
 #! /bin/sh 
 # 
 # /usr/local/bin/loopdevice für SuSE 9.1 
 # 
 # Einbindung und Lösung von loop Devices 
 # (c) Günther Zander, August 2003 
 # 
 # Datei in /usr/local/bin kopieren und einmal Aurufen mit 
 # "loopdevice install". Dann installiert sich das Programm von selbst. 

 # Dez. 2004 
 # Einbinden in /etc/sudoers um die Eingabe des Root-Passworts zu umgehen. 

 # 
 # Variablen belegen 
 # 
 # MOUNTPOINT  Ort des Verzeichnisses wo die verschlüsselte Datei eingehängt wird 
 # MOUNTFILE   Ort der verschlüsselten Datei 
 # FSYSTEM     Filesystem der verschlüsselten Datei 
 # LOOPDEVICE  Name des Devicetreibers 
 # LOGFILE     Ort und Name des LOG-Files. Zugriffsrechte überprüfen! 
 # PRG         Ort wo das Programm gespeichert werden soll 
 # NAME        Freier Text des Icons 

 MOUNTPOINT=/daten/security 
 MOUNTFILE=/daten/.security 
 FSYSTEM=EXT3 
 LOOPDEVICE=/dev/loop5 
 LOGFILE=/var/log/loop 
 PRG=/usr/local/bin 
 NAME="For your Eyes only" 

 # Desktopdarstellung 
 # 

 desktop () 
 { 
 for i in `ls /home` 
 do 
   DAT=/home/$i/Desktop/$NAME 
   rm "$DAT" 
   if [ "$1" == "laden" ]; then 
      desktopicon laden 
   else 
      desktopicon entladen 
   fi 
   chown $i "$DAT" 
   chgrp users "$DAT" 
   chmod 600 "$DAT" 
 done 

 DAT=/root/Desktop/$NAME 
 rm "$DAT" 
 if [ "$1" == "laden" ]; then 
    desktopicon laden 
 else 
    desktopicon entladen 
 fi 
 } 

 desktopicon () 
 { 
 echo "[Desktop Entry]" > $DAT 

 if [ $1 == "laden" ];then 
    echo "Comment=Verschlüsselte Datei einhängen" >> $DAT 
    echo "Comment[de]=Verschlüsselte Datei einhängen" >> $DAT 
    echo "Icon=decrypted" >> $DAT 
 else 
    echo "Comment=Verschlüsselte Datei aushängen" >> $DAT 
    echo "Comment[de]=Verschlüsselte Datei aushängen" >> $DAT 
    echo "Icon=encrypted" >> $DAT 
 fi 

 echo "Encoding=UTF-8" >> $DAT 
 echo "Exec=sudo $PRG/loopdevice" >> $DAT 
 echo "MimeType=" >> $DAT 
 echo "Name=$NAME" >> $DAT 
 echo "Name[de]=$NAME" >> $DAT 
 echo "Path=" >> $DAT 
 echo "ServiceTypes=" >> $DAT 
 echo "SwallowExec=" >> $DAT 
 echo "SwallowTitle=" >> $DAT 
 echo "Terminal=true" >> $DAT 
 echo -e "TerminalOptions=--caption \042\042 --noframe --vt_sz 80x5 --nomenubar --notoolbar --noscrollbar" >> $DAT 
 echo "Type=Application" >> $DAT 
 } 

 # 
 # Autostart einrichten 
 # 

 if [ "$1" == "install" ]; then 
   # Check Lib 
   rpm -q libmcrypt 
   # Errorcode 0 -> OK, !0 -> failed 
   if ! [ $? -eq 0 ]; then 
     echo 
     echo "Installieren Sie das Paket bevor Sie das Script wieder starten!" 
     exit 1 
   fi   

   # check root-user 
   RUSER=`whoami` 
   RGROUP=`groups $RUSER | awk '{if ($1 == $RUSER); print $3}'` 
   if ! [ "$RGROUP" = "root" ]; then 
       echo 
       echo "Starten Sie das Script als root!" 
       exit 1 
   fi 
 
   NAME2=.kde/Autostart/loopdevice 
   echo "Cmnd_Alias LOOP = "$PRG"/loopdevice" >> /etc/sudoers 
   cp loopdevice $PRG 
    
   for i in `ls /home` 
   do 
     DAT=/home/$i/$NAME2 
     ln -s $PRG/loopdevice $DAT 
     chown $i $DAT 
     chgrp users $DAT 
     chmod 700 $DAT 
     echo $i" ALL=NOPASSWD:LOOP" >> /etc/sudoers 
   done 
   ln -s $PRG/loopdevice /root/$NAME2 
   desktop entladen 
   exit 
 fi 

 # 
 # Autostartoption 
 # 
 if [ `echo $0 | grep -c /.kde/Autostart/` = "1" ]; then 
    if [ `cat /etc/mtab | grep -c $LOOPDEVICE` = "1" ]; then 
       desktop laden 
    else 
       desktop entladen 
    fi 
    exit 
 fi 

 # 
 # Desktopeingabe 
 # 
 LOGTIME=`date "+%Y.%m.%d %T %A"` 
 clear 
 if [ `cat /etc/mtab | grep -c $LOOPDEVICE` = "1" ]; then 
    /bin/umount $MOUNTPOINT 
    /sbin/losetup -d $LOOPDEVICE 
    /sbin/rmmod loop_fish2 
    echo "Filesystem $MOUNTPOINT ausgehängt!" 
    desktop entladen 
    echo "$LOGTIME...Close File" >> $LOGFILE 

 else 
    /sbin/modprobe loop_fish2 
    echo -n "Secondary " 
    /sbin/losetup -e twofish $LOOPDEVICE $MOUNTFILE 
    /bin/mount -t $FSYSTEM $LOOPDEVICE $MOUNTPOINT 
    if [ $? = 0 ]; then 
       echo "Filesystem $MOUNTPOINT eingehängt!" 
       desktop laden 
       echo "$LOGTIME...Open File" >> $LOGFILE 
    else 
       /sbin/losetup -d $LOOPDEVICE 
       /sbin/rmmod loop_fish2 
       echo "Module wieder entladen!" 
       desktop entladen 
       echo "$LOGTIME...Access denied" >> $LOGFILE 
       sleep 5s 
    fi 
 fi 
	

[Zum Artikel]


/usr/local/bin/loopdevice-{User} für SuSE 9.3
#! /bin/sh 
#
# /usr/local/bin/loopdevice-{user} für SuSE 9.3
#
# Einbindung und Lösung von loop Devices
# (c) Günther Zander, September 2005
#
# Datei in /usr/local/bin kopieren und einmal Aurufen mit
# "loopdevice install". Dann installiert sich das Programm von selbst.

# Dez. 2004
# Einbinden in /etc/sudoers um die Eingabe des Root-Passworts zu umgehen.
# Sep. 2005
# Anpassung an SuSE 9.3
# Nur noch ein User zugelassen

#
# Variablen belegen
# -----------------
# MOUNTPOINT  Ort des Verzeichnisses wo die verschlüsselte Datei eingehängt wird
# MOUNTFILE   Ort der verschlüsselten Datei
# FSYSTEM     Filesystem der verschlüsselten Datei
# LOOPDEVICE  Name des Devicetreibers
# LOGFILE     Ort und Name des LOG-Files. Zugriffsrechte überprüfen!
# PRG         Ort wo das Programm gespeichert werden soll
# PRGNAME     Name dieses Programmes
# NAME        Freier Text des Icons
# LOOPUSER    User der dieses Programm benutzen soll
# LOOPGRP     Die Gruppe die der User angehört

MOUNTPOINT=/home/admin/Security
MOUNTFILE=/home/admin/.security
FSYSTEM=ext3
LOOPDEVICE=/dev/loop5
LOGFILE=/var/log/loop
PRG=/usr/local/bin
PRGNAME=loopdevice-admin
NAME="For your Eyes only.desktop"
LOOPUSER=admin
LOOPGRP=users

# Desktopdarstellung
#

desktop ()
{
DAT=/home/$LOOPUSER/Desktop/$NAME
rm "$DAT"
if [ "$1" == "laden" ]; then
desktopicon laden
else
desktopicon entladen
fi
chown $LOOPUSER "$DAT"
chgrp $LOOPGRP "$DAT"
chmod 600 "$DAT"
}

desktopicon ()
{
echo "[Desktop Entry]" > $DAT

if [ $1 == "laden" ];then
echo "Comment=Verschlüsselte Datei einhängen" >> $DAT
echo "Comment[de]=Verschlüsselte Datei einhängen" >> $DAT
echo "GenericName=Verschlüsselte Datei einhängen" >> $DAT
echo "GenericName[de]=Verschlüsselte Datei einhängen" >> $DAT
echo "Icon=decrypted" >> $DAT
else
echo "Comment=Verschlüsselte Datei aushängen" >> $DAT
echo "Comment[de]=Verschlüsselte Datei aushängen" >> $DAT
echo "GenericName=Verschlüsselte Datei aushängen" >> $DAT
echo "GenericName[de]=Verschlüsselte Datei aushängen" >> $DAT
echo "Icon=encrypted" >> $DAT
fi
echo "Encoding=UTF-8" >> $DAT
echo "Exec=sudo $PRG/$PRGNAME" >> $DAT
echo "MimeType=" >> $DAT
echo "Name=$NAME" >> $DAT
echo "Name[de]=$NAME" >> $DAT
echo "Path=" >> $DAT
echo "Terminal=true" >> $DAT
echo -e "TerminalOptions=--caption \\042\\042 --noframe --vt_sz 80x5 --nomenubar --notoolbar --noscrollbar" >> $DAT
echo "Type=Application" >> $DAT
echo "StartupNotify=true" >> $DAT
echo "X-DCOP-ServiceType=none" >> $DAT
echo "X-KDE_SubstituteUID=false" >> $DAT
echo "X-KDE-Username=" >> $DAT
}

#
# Autostart einrichten
#

if [ "$1" == "install" ]; then
# check root-user
RUSER=`whoami`
RGROUP=`groups $RUSER | awk '{if ($1 == $RUSER); print $3}'`
if ! [ "$RGROUP" = "root" ]; then
echo
echo "Starten Sie das Script als root!"
exit 1
fi
NAME2=.kde/Autostart/$PRGNAME
echo "Cmnd_Alias LOOP = "$PRG"/$PRGNAME" >> /etc/sudoers
cp $PRGNAME $PRG
DAT=/home/$LOOPUSER/$NAME2
ln -s $PRG/$PRGNAME $DAT
chown $LOOPUSER $DAT
chgrp $LOOPGRP $DAT
chmod 700 $DAT
echo $LOOPUSER" ALL=NOPASSWD:LOOP" >> /etc/sudoers
desktop entladen
exit
fi

#
# Autostartoption
#
if [ `echo $0 | grep -c /.kde/Autostart/` = "1" ]; then
if [ `cat /etc/mtab | grep -c $LOOPDEVICE` = "1" ]; then
desktop laden
else
desktop entladen
fi
exit
fi

#
# Desktopeingabe
#
LOGTIME=`date "+%Y.%m.%d %T %A"`
clear
if [ `cat /etc/mtab | grep -c $LOOPDEVICE` = "1" ]; then
/bin/umount $MOUNTPOINT
/sbin/losetup -d $LOOPDEVICE
rmdir $MOUNTPOINT
echo "Filesystem $MOUNTPOINT ausgehängt!"
desktop entladen
echo "$LOGTIME...Close File" >> $LOGFILE
else
mkdir $MOUNTPOINT
echo -n "Secondary "
/sbin/losetup -e twofish256 $LOOPDEVICE $MOUNTFILE
/bin/mount -t $FSYSTEM $LOOPDEVICE $MOUNTPOINT
chmod 700 $MOUNTPOINT
chown $LOOPUSER $MOUNTPOINT
chgrp $LOOPGRP $MOUNTPOINT
if [ $? = 0 ]; then
echo "Filesystem $MOUNTPOINT eingehängt!"
desktop laden
echo "$LOGTIME...Open File" >> $LOGFILE
else
/sbin/losetup -d $LOOPDEVICE
rmdir $MOUNTPOINT
echo "Module wieder entladen!"
desktop entladen
echo "$LOGTIME...Access denied" >> $LOGFILE
sleep 5s
fi
fi
	

[Zum Artikel]

Letzte Änderung: 16.Sep.2008