Samba - ein fast kostenloser Server

von Thomas Kemmerich - http://www.thomas-kemmerich.de

Download der druckbaren Version: a) als zip-Datei b) als tar-Datei
 

Inhalt

1. Vorwort
2. Voraussetzungen
3. Vorzüge eines Servers
3.1. Allgemeine Vorzüge eines Servers
3.2. Vorzüge eines Linux-Servers
4. Ziel
5. Anmerkung
6. Die Beispielumgebung
7. Einrichten der Netzwerkgrundstruktur
8. Einrichten des Servers
8.1. Einstellungen am Server
 
8.2. Grundsätzliches zu Samba
8.3. /etc/smb.conf
9. Einrichten des Windows 98 Clients
9.1. Bearbeiten der Registry
9.2. Die Netzwerkeinstellungen
10. Erster Test
11. Logonscripts
11.1. Allgemeines zu Logonscripts
11.2. Aufbau eines Logonscripts
12 Schlußwort
13 Über den Autor


1. Vorwort


Der nun folgende Text ist eine Anleitung zum Einrichten eines Samba Fileservers unter Linux. Ich beziehe mich während des ganzen Textes auf mein eigenes System und übernehme keinerlei Haftung für jegliche Schäden, die durch dieses "HowTo" entstehen könnten. Außerdem weise ich hiermit darauf hin, dass dieses "HowTo" eventuell Fehler beinhaltet, welche ich zu entschuldigen bitte. Falls dir ein Fehler auffällt, wäre es sehr nett mit mir in Kontakt zu treten.
 


2. Voraussetzungen


Voraussetzungen für dieses "HowTo" sind:

  • Gute Linux- und Windowskenntnisse
  • Samba 2.0.5a (müßte auch mit Versionen > 2.0.0 gehen)
  • Funktionierendes Netzwerk (Hardware) mit TCP/IP
  • Windows 98 als Clientbetriebssystem
  • SuSE Linux 6.2 (Kernel 2.2.10) oder höher

3. Vorzüge eines Servers


3.1. Allgemeine Vorzüge eines Servers
Die Vorteile eines Servers allgemein sind:

  • Schneller Dateiaustausch
  • Effektive Nutzung der vorhandenen Drucker
  • Ist ein Modem bzw. eine ISDN-Karte im Server Vorhanden, kann das ganze Netzwerk darüber ins Internet
  • Einfache Sicherung wichtiger Daten
  • Zentrale Datenhaltung

3.2. Vorzüge eines Linux-Servers
Die Vorzüge eines Linux-Servers liegen auf der Hand. Erstens werden alle Netzwerkdienste gleich im System mitgeliefert, zweitens ist die mitgelieferte Software sehr flexibel, da der Quelltext immer dabei ist und man somit das Programm ohne Probleme an die eigenen Gewohnheiten anpassen kann (vorausgesetzt man beherrscht die benötigte Programmiersprache). Drittens entwickeln sich Linux und die dazugehörigen Programme sehr schnell, weil jeder der mitprogrammieren will dies auch tun kann. Viertens findet man bei Problemen im Internet und in Newsgroups immer jemanden, der helfen kann. Fünftens hat ein Linux Server lange nicht so hohe Ansprüche an die Hardware, wie zum Beispiel ein NT-Server. Und zu guter letzt ist Linux und die dazugehörige Software (fast) kostenlos. Würde man unser Vorhaben mit einem Windows NT System realisieren, müßte man schnell einige tausend DM auf den Tisch legen.
 


4. Ziel


Das Ziel meines "HowTo"s ist ein funktionierender Samba Fileserver, der sich im Netzwerk als Windows NT-Domain-Controller ausgibt. Jeder Benutzer soll sich mit seinem Paßwort an dem Server anmelden und a) auf sein Heimatverzeichnis b) auf ein allgemeines Datenverzeichnis und c) auf das Server-CD-ROM-Laufwerk Zugriff haben. Außerdem sollen alle Vorgänge der angemeldeten Benutzer in separaten log-Dateien aufgezeichnet werden.

5. Anmerkung

Root ist mächtig, er kann aber auch zerstören - und meistens gibt es keinen "Rückgängig"-Knopf!
Das wollte ich, bevor es los geht noch mal loswerden, weil alle Einstellungsarbeiten am Server als root vorgenommen werden müssen...


6. Beispielumgebung


Jetzt lassen wir unser Netzwerk mal Gestalt annehmen. Der Server-PC könnte folgende Ausstattung haben:

    Prozessor: i486 DX4 100
    Grafikkarte: Tseng ET4000 W32p
    Festplatte: 8 GB Seagate (IDE)
    CD-ROM-Laufwerk: altes 8x von Creative
    Betriebssystem: SuSE Linux 6.2 (Kernel 2.2.10)
    NE-2000 kompatible Netzwerkkarte (ISA) (BNC Kabel)

Wie man sieht, ist der Server kein High-End-System, aber für unsere Zwecke vollkommen ausreichend. Die Clients sind total unterschiedlich, sie haben lediglich zwei Dinge gemeinsam:

    Betriebssystem: Windows 98
    NE-2000 kompatible Netzwerkkarten (BNC Kabel)

Wie man das Netzwerk nun strukturiert (Topologie) ist jedem selbst überlassen, hier in der Beispielumgebung verwende ich eine 10 Mbit Bustopologie. Das scheint mir bei einem kleinen, privaten Netzwerk (bis max. 10 PCs) die preiswerteste und beste Lösung zu sein. Die Beispielumgebung sieht nun so aus:


Einrichten der Netzwerkgrundstruktur

Als erstes sollte sichergestellt werden, dass das Netzwerk von der Hardwareseite aus gesehen funktionsfähig ist. Um das zu testen installieren wir auf jedem PC das TCP/IP-Protokoll und ordnen jedem PC eine eindeutige IP-Adresse zu (Kleiner Tip: Unter Windows 9x geht das unter Systemsteuerung - Netzwerk und unter SuSE-Linux am Besten mittels YaST).In unserem Fall lautet diese IP-Adresse 192.168.0.x: Der erste Client bekommt die IP-Adresse 192.168.0.1, der zweite 192.168.0.2, der dritte 192.168.0.3, ... Der Server bekommt die IP-Adresse 192.168.0.99.
Da unser Netz ein Klasse C Netz im privaten Bereich ist, verpassen wir jedem PC die Subnetmask 255.255.255.0.
So, als erstes sollte man nun testen, ob diese Einstellungen funktionieren. Dazu kann man unter Windows 9x in der MS-DOS-Eingabeaufforderung ipconfig und unter der Linux Shell ifconfig eingeben. Die Ausgabe müsste dann ungefähr so aussehen:
Windows 9x:
 
   Windows 98 IP-Konfiguration 
 
   0 Ethernet Adapter : 
 
           IP-Adresse. . . . . . . . . : 192.168.0.2 
           Subnet Mask . . . . . . . . : 255.255.255.0 
           Standard-Gateway . . . . . . : 0.0.0.0 

Linux:

 
 
   eth0      Link encap:Ethernet  HWaddr 08:00:00:30:04:06 
             inet addr:192.168.0.99 Bcast:192.168.0.255 Mask:255.255.255.0 
             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
             RX packets:1401 errors:0 dropped:0 overruns:0 frame:1 
             TX packets:1137 errors:0 dropped:0 overruns:0 carrier:0 
             collisions:10 txqueuelen:100 
             Interrupt:10 Base address:0x300 
 
   lo        Link encap:Local Loopback 
             inet addr:127.0.0.1  Mask:255.0.0.0 
             UP LOOPBACK RUNNING  MTU:3924  Metric:1 
             RX packets:33 errors:0 dropped:0 overruns:0 frame:0 
             TX packets:33 errors:0 dropped:0 overruns:0 carrier:0 
             collisions:0 txqueuelen:0 

Ist dies der Fall, sollte man in der Lage sein mit dem Programm ping die anderen Rechner zu erreichen. Dazu gibt man unter Linux oder Windows einfach ping IP-Adresse ein. Um den Server von einem Client aus zu erreichen also ping 192.168.0.99.
Ist auch ping erfolgreich, so steht die Grundstruktur und wir können uns dem Einrichten des Servers und dem der Clients zuwenden.

8. Einrichten des Servers

8.1. Einstellungen am Server
Damit auch alles so funktioniert, wie es einmal funktionieren soll, wenn das "HowTo" fertig ist, müssen am Server, neben den Sambaeinstellungen, noch einige andere Einstellungen vorgenommen werden:

  1. Damit der Samba-Server beim Hochfahren des Systems auch automatisch gestartet wird, muss die Datei /etc/rc.config bearbeitet werden. Irgendwo in der Datei befindet sich der Eintrag START_SMB. Diesen Eintrag muß man auf "yes" setzen. In /etc/rc.config steht dann also ein Zeile die wie folgt aussieht:
     
       START_SMB="yes"
    Die Datei /etc/rc.config kann man entweder mit YaST oder mit einem Editor bearbeiten.
    (Anmerkung von www.linuxhilfen.org: Vorstehendes gilt nur für SuSe. In jeder anderen Distribution erreicht man den Start über das jeweilige distributionspezifische Konfig-Tool.)
  2. Samba benutzt eine eigene Paßwortdatei mit dem Namen /etc/smbpasswd. Diese generieren wir einfach durch die Eingabe von:
     
       cp /etc/passwd /etc/smbpasswd

  3. Alle Benutzer die sich später von den Clients anmelden wollen, müssen dem Server bekannt sein. Dass heißt also, dass wir sie am Server einrichten müssen. Dies geht zum Beispiel mit dem Befehl:
    useradd -u USERID_DES_BENUTZERS -g users -d /home/NEUER_BENUTZER  
    -s /bin/bash NEUER_BENUTZER
    Das Heimatverzeichnis legen wir mit:
    mkdir /home/NEUER_BENUTZER
    an. Dann setzen wir das Paßwort:
    passwd NEUER_BENUTZER
    und anschließend lassen wir den Benutzer noch für Samba zu:
    smbpasswd -a -e NEUER_BENUTZER
    und setzen die Eigenschaften des Verzeichnisses /home/NEUER_BENUTZER auf
    drwx------  2 NEUER_BENUTZER users 1024 Jan 1 00:22  NEUER_BENUTZER
    Dies wiederum geht mit den Befehlen:
       chmod 700 /home/NEUER_BENUTZER 
       chgrp users /home/NEUER_BENUTZER 
       chown NEUER_BENUTZER /home/NEUER_BENUTZER
    Natürlich muß anstelle von NEUER_BENUTZER oben der Name des neuen Benutzers eingesetzt werden ;)

  4. Außerdem erstellen wir jetzt noch das Verzeichnis /home/netlogon und setzen die Rechte. Dies tun wir durch die Eingabe von:
       mkdir /home/netlogon 
       chmod 755 /home/netlogon
  5. Dann legen wir noch das Verzeichnis /cdrom an, falls noch nicht vorhanden und setzen auch hier wieder die Rechte:
       mkdir /cdrom 
       chmod 755 /cdrom
  6. Jetzt legen wir noch das Verzeichnis /home/internet an und setzen die Rechte:
       mkdir /home/internet 
       chmod 777 /home/internet


8.2. Grundsätzliches zu Samba

Die Konfiguration des Samba-Servers erfolgt über die zentrale Konfigurationsdatei /etc/smb.conf. In ihr werden alle Servereinstellungen vorgenommen. In diesem "HowTo" verwende ich eine smb.conf, die nur das Nötigste zum Betrieb des Servers mitbringt, da es den Umfang des "HowTo"s überschreiten würde, wenn ich alle möglichen Einstellungen auflisten würde. Wer dennoch mehr über die möglichen Einstellungen wissen will, der sollte sich mal die man-Pages zur smb.conf anschauen (man smb.conf).
Nun gibt es mehrere Arten, wie man den Samba-Server konfigurieren kann. Man kann dies zum Beispiel über SWAT (Samba Web Administration Tool) ganz bequem mit einem Browser erledigen oder man benutzt eine X-Oberfläche oder oder oder...
In diesem "HowTo" bearbeiten wir die /etc/smb.conf jedoch mit einem Editor (ich benutze dazu vi). Da es wichtig ist, den Aufbau der Datei zu kennen, falls eines dieser schönen Tools von oben mal partout seinen Dienst verweigert.
Nach jeder Änderung an der Konfiguration des Samba-Servers muß dieser heruntergefahren und wieder neu gestartet werden, damit der Samba-Dämon die neuen Einstellungen aus der Konfigurationsdatei /etc/smb.conf liest und auch verwendet. Dies geschieht ganz einfach durch den Aufruf von
    /sbin/init.d/./smb restart
Wer will, kann sich ja ein eigenes Script schreiben um sich das eventuell lästige Eintippen der Befehlszeile zu ersparen. Das ist jedoch ein Thema für sich. ;)


8.3. /etc/smb.conf
Anmerkung: Kommentare können in die Datei mittels einer Raute # in einer neuen Zeile eingefügt werden.
So, nun geht's los mit den Einstellungen in der Konfigurationsdatei. Die besagte Datei ist in mehrere Sektionen aufgeteilt:
  • [global]
  • [homes]
  • [printers]
  • [netlogon]
  • und frei wählbare (zum Beispiel [cdrom]).
Das was in den frei wählbaren Sektionen in der Klammer steht, ist später als Freigabename unter Windows zu sehen. Davon sind nur [global], [printers] und [netlogon] ausgenommen, sie dienen den Servereinstellungen [global], den Druckereinstellungen [printers] und dem Anmeldevorgang [netlogon].
Schauen wir uns nun mal die einzelnen Sektionen etwas genauer an.

In der [global]-Sektion werden die Grundeinstellungen des Servers festgelegt:
 
Option Beschreibung
workgroup = server.de Diese Option gibt den Namen der Arbeitsgruppe und der NT-Domäne an
share modes = yes Mehrere, gleichzeitige Zugriffe auf eine Datei sind möglich
security = server Die Sicherheitsüberprüfung wird an den Server übertragen. In diesem Fall unser Samba-Server. Es können sich also nur User mit einem, am Server vorhandenen, Konto am Netzwerk anmelden und somit Zugriff auf die Daten vom Server haben.
os level = 65 Gibt an welche "Wichtigkeit" der Server im Netz hat. Der Computer mit der höchsten "Wichtigkeit" steht in der Netzwerkhierarchie an erster Stelle. Ein NT-Server hat den os level 64. Bei der hier vorliegenden Einstellung würde unser Samba-Server also diese höchste Stelle einnehmen.
domain logons = yes Erlaubt die Anmeldung von Windows 95 / 98 Clients an den Server (die Workgroup)
logon script = %U.bat Beim Einloggen wird ein Logonscript abgearbeitet. Dieses trägt den Namen des aktuellen Benutzers (dies besagt die Variable %U) sowie die Endung .bat (heißt der Benutzer zum Beispiel micrix, so wird das Logonscript micrix.bat abgearbeitet).
log file = /home/netlogon/%m.log Jeder Computer der sich am Server anmeldet (%m) bekommt ein eigenes log-File. Heißt der Computer zum Beispiel buero_pc wäre hier /home/netlogon/buero_pc.log die dazugehörige log-Datei.
server string = Mein kleiner Server Server string speichert einen Kommentar zum Server, der zum Beispiel unter Windows zu sehen ist.
encrypt passwords = yes Die Paßwörter werden verschlüsselt.

Jetzt haben wir die Servergrundeinstellungen schon vorgenommen und machen uns jetzt an die Freigabe der Heimatverzeichnisse. Hierzu gibt es in der /etc/smb.conf den Abschnitt [homes]. Homes ist jedoch nicht der Freigabename, sondern nur der Sektionsname in der Konfigurationsdatei. Der Freigabename richtet sich nach den Namen des Benutzers. Meldet sich zum Beispiel der Benutzer micrix an, so erscheint sein Heimatverzeichnis unter dem Freigabenamen micrix (in unserem Fall heißt der Server-PC server, der komplette Freigabename lautet also \\server\micrix). Den kompletten Freigabenamen zu kennen wird später, wenn wir unsere Logonscripts schreiben, wichtig sein.

Option Beschreibung
browseable = no In der Windows Netzwerkumgebung ist dieser Freigabename nur für den Benutzer zu sehen, dem er auch zugeordnet ist.
writeable = yes Schreibzugriff auf das Heimatverzeichnis ist erlaubt.

Nun geben wir noch das CD-ROM-Laufwerk des Servers frei (Freigabename: cdrom). Hierbei ist noch zu sagen, dass man natürlich nur auf das CD-ROM-Laufwerk zugreifen kann, wenn es auf /cdrom gemountet wurde.

Option Beschreibung
path = /cdrom path gibt den Path der freigegebenen Ressource an.
read only = yes Es ist nur Lesezugriff erlaubt.

Jetzt müssen wir dem Samba-Server noch sagen, wo die Logonscripte liegen und sie ihm zugänglich machen. Dies geschieht im Abschnitt [netlogon]:

Option Beschreibung
path = /home/netlogon path gibt den Path der freigegebenen Ressource an.
read only = yes Es ist nur Lesezugriff erlaubt.
browseable = no In der Windows Netzwerkumgebung ist dieser Freigabename nicht zu sehen. Er wird von keinem Suchdienst gefunden, obwohl er vorhanden ist.
create mode = 0755 Alle Dateien die in dieser Ressource erstellt werden besitzen die Rechte -rwxr-xr-x. Dies entspricht dem Linux-Befehl chmod 755 DATEI

Zu guter Letzt geben wir jetzt noch ein Verzeichnis frei, in dem alle Benutzer tun und lassen können, was sie wollen. Dieses Verzeichnis ist in diesem Fall ein Verzeichnis, in dem die Benutzer ihre Dateien, die sie aus dem Internet downgeloaded haben abspeichern können. Die Einstellungen für dieses Verzeichnis werden in der /etc/smb.conf unter dem Abschnitt [internetdaten] gemacht:

Option Beschreibung
path = /home/internet path gibt den Path der freigegebenen Ressource an.
browseable = yes Der Freigabename wird von jedem Suchdienst gefunden, er ist somit auch in der Windows Netzwerkumgebung zu sehen.
writeable = yes Lese- und Schreibzugriff auf die gesamte Ressource sind erlaubt.
create mode = 777 Alle Dateien die in dieser Ressource erstellt werden sind öffentlich. Dies entspricht dem Linux-Befehl chmod 777 DATEI


Damit ist die Serverkonfiguration abgeschlossen und wir starten den Server neu. Die komplette Datei /etc/smb.conf sieht nun also so aus:

[global] 
 workgroup = server.de 
 share modes = yes 
 security = server 
 os level = 65 
 domain logons = yes 
 logon script = %U.bat 
 log file = /home/netlogon/%m.log 
 server string = Mein kleiner Server 
 encrypt passwords = yes 
 
[homes] 
 browseable = no 
 writeable = yes 
 
[cdrom] 
 path = /cdrom 
 read only = yes 
 
[netlogon] 
 path = /home/netlogon 
 read only = yes 
 browseable = no 
 create mode = 0755 
 
[internetdaten] 
 path = /home/internet 
 browseable = yes 
 writeable = yes 
 create mode = 777 

9. Einrichten des Windows 98 Clients



Zwei wichtige Einstellungen müssen an den Windows 98 Clients vorgenommen werden. Erstens muß die Windows 98 Registry um einen Eintrag erweitert werden und zweitens müssen wir noch die Netzwerkeinstellungen anpassen.

  • 9.1. Bearbeiten der Registry
    Windows 98 sendet nur noch verschlüsselte Paßwörter, im Gegensatz zu Windows 95. Angenommen wir haben kein 98 sondern 95 als Clientbetriebssystem, so können wir diesen Teil überspringen und bei der zweiten Änderung weitermachen, da Windows 95 die Paßwörter so sendet, wie sie Samba erwartet: unverschlüsselt. Damit aber auch Windows 98 mit Samba zusammenarbeitet, müssen wir mit dem Windows 98 Programm regedit im Schlüssel
     
       [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
    den DWORD-Wert EnablePlainTextPassword hinzufügen und auf 1 setzen.
    (Anmerkung von www.linuxhilfen.de: Obsolet, wenn - wie oben - "encrypt passwords = yes" eingestellt ist.)
  • 9.2. Die Netzwerkeinstellungen
    Als erstes gehen wir in die Systemsteuerung und klicken da mal auf Netzwerk. Nun fügen wir, falls noch nicht vorhanden, folgende drei Komponenten hinzu:
    1. Einen Client und zwar den Client für Microsoft-Netzwerke
    2. Eine Netzwerkkarte und zwar deine eigene ;)
    3. Ein Protokoll und zwar das TCP/IP (in der Liste unter Microsoft zu finden)

    Als Primäre Netzwerkanmeldung wählen wir dann Client für Microsoft-Netzwerke aus.
    Ok, fangen wir an mit den Eigenschaften des Client für Microsoft-Netzwerke. Bei Anmeldebestätigung kreuzen wir das Kästchen vor An Windows NT-Domäne anmelden an und geben im Eingabefeld hinter Windows NT-Domäne den Namen unserer Domäne ein. Den Namen haben wir in der /etc/smb.conf im Abschnitt [global] hinter workgroup festgelegt. Also schreiben wir in unserem Fall server.de in das Eingabefeld.
    Bei Netzwerkanmeldeoptionen wählen wir die untere Möglichkeit Anmelden und Verbindungen wiederherstellen aus.
    Die Netzwerkkarteneigenschaften sollten so eingestellt werden, dass unter Bindungen der Haken vor TCP/IP gesetzt ist.
    Die Konfiguration von TCP/IP muß wie folgt aussehen: Unter dem Register IP-Adresse wählen wir IP-Adresse festlegen und geben als IP-Adresse 192.168.0.x ein (x ist natürlich durch eine fortlaufende Nummer zu ersetzen, beginnend bei 1. Mehr dazu siehe unter dem Abschnitt: Einrichten der Netzwerkgrundstruktur). Als Subnet Mask geben wir auf jedem PC im Netzwerk 255.255.255.0 ein. Im Register Gateway tragen wir die Server-IP-Adresse 192.168.0.99 als Standard-Gateway ein und klicken dann auf Hinzufügen. Die IP-Adresse sollte dann in der Liste Installierte Gateways auftauchen.
    So, jetzt bleiben noch zwei Einstellungen über, die wir noch machen müssen. Einmal direkt unter Netzwerk - Zugriffssteuerung wählen wir Zugriffssteuerung auf Benutzerebene und schreiben bei Benutzer- und Gruppenliste beziehen von in das Feld den Namen unserer Domäne server.de.
    Die letzten Einstellungen machen wir jetzt noch unter Netzwerk - Identifikation. Der Computername ist frei wählbar, bei uns ist das Clientx, wobei das x wieder durch eine fortlaufende Nummer beginnend mit 1 ersetzt wird. Als Arbeitsgruppe tragen wir den Namen, den wir in der /etc/smb.conf hinter workgroup angegeben haben, ein. Wer will, der kann auch noch eine Beschreibung eingeben. Diese ist aber nicht zwingend erforderlich.

10. Erster Test


Da wir nun mit dem größten Teil der Konfiguration fertig sind, ist es an der Zeit, einmal zu testen, ob auch alles so geklappt hat wie es soll. Hierzu benutzen wir am Server am Besten das Programm smbclient. Durch die Eingabe von smbclient -L server -U NEUER_BENUTZER sollten wir folgende Ausgabe bekommen, wenn alles geklappt hat:
 
   Added interface ip=192.168.0.99 bcast=192.168.0.255 nmask=255.255.255.0 
   Password: 
   Domain=[SERVER.DE] OS=[Unix] Server=[Samba 2.0.5a] 
 
     Sharename      Type      Comment 
     ---------      ----      ------- 
     cdrom          Disk 
     internetdaten  Disk 
     IPC$           IPC       IPC Service (Mein kleiner Server) 
     NEUER_BENUTZER Disk 
 
     Server               Comment 
     ---------            ------- 
     SERVER               Mein kleiner Server 
 
     Workgroup            Master 
     ---------            ------- 
     SERVER.DE            SERVER 

Natürlich müsste, nach der Anmeldung am Client, auch der Server mit seinen freigegebenen Ressourcen in der Windows Netzwerkumgebung zu sehen sein.
Sollte es wider Erwarten Probleme geben, als erstes mit ipconfig (Windows) bzw. ifconfig (Linux) testen, ob das Netzwerk richtig konfiguriert ist und dann eventuell auch noch versuchen, ob sich die Rechner mit ping erreichen. Folgende Fragen sollten wir uns bei der Fehlersuche stellen:
  • Fehlt etwa ein Endwiderstand?
  • Sind alle Netzwerkkabel richtig eingesteckt?
  • Stimmen die IP-Adressen?
  • Sind eventuell IP-Adressen doppelt vergeben?
  • Stimmt das Subnet?

11. Logonscripts



11.1. Allgemeines zu Logonscripts

Nun gut, die mehr oder weniger umständliche Konfiguration des Servers und der Clients ist jetzt soweit abgeschlossen. Da unser Server ja ein Fileserver sein soll, wäre es ganz praktisch, wenn bei der Anmeldung am Client automatisch ein oder auch mehrere Netzlaufwerke verbunden werden würden. Zwar kann man dies auch von Hand machen, aber das ist wohl in den seltensten Fällen erwünscht. Denn für einen "normalen" User muß der PC einfach funktionieren. Wenn man als Systemadministrator jedoch mal ein paar Daten vom Server braucht, kann man allerdings ohne Probleme schnell ein Verzeichnis auf dem Server freigeben, und dieses dann manuell mit einem Netzlaufwerk verbinden (rechter Mausklick auf Netzwerkumgebung - Netzlaufwerk verbinden...).
Genug geredet, jetzt zur automatischen Lösung: Logonscripts. Logonscripts werden bei der Anmeldung an den Server ausgeführt. Sie liegen unserer Konfiguration (/etc/smb.conf) nach im Verzeichnis /home/netlogon auf dem Server. Außerdem haben wir während der Konfiguration des Samba-Servers festgelegt, dass jeder Benutzer ein individuelles Logonscript haben soll. Dass heißt also, dass wir nun für jeden Benutzer ein eigenes Logonscript schreiben müssen. Dabei sind drei Dinge zu beachten: Erstens müssen die Logonscripts mit einem DOS/Windows-Editor geschrieben werden, damit der Client sie später auch versteht. Zweitens muß jedes Logonscript folgendes Format haben: BENUTZER_NAME.bat. Drittens sollten die einzelnen Logonscripts mit folgenden Befehlen:
chmod 500 BENUTZER_NAME.bat 
chown BENUTZER_NAME BENUTZER_NAME.bat
mit diesen Rechten versehen werden:
 
   -r-x------  1 BENUTZER_NAME  root  156 Dec 29 17:51 BENUTZER_NAME.bat
Aufgrund der vergebenen Rechte spielt es keine Rolle, welcher Gruppe das Logonscript zugeordnet ist.


11.2. Aufbau eines Logonscripts

Wie muss ein Logonscript denn jetzt aussehen? Logonscripte sind eigentlich ganz einfache Batch-Dateien (zumindest in unserem Fall). Wichtigster Bestandteil unserer Logonscripts ist der DOS- bzw. Windows-Befehl net. Er ist in der Lage Netzwerkverzeichnissen Laufwerksbuchstaben zuzuordnen, oder aber auch die Uhrzeiteinstellungen des Clients mit denen des Servers abzugleichen. Also, hier nun mal ein Logonscript, wie es in unserem Fall für NEUER_BENUTZER aussehen könnte:
 
   @echo off 
   c:\windows\net start 
   c:\windows\net use g: \\server\NEUER_BENUTZER 
   c:\windows\net use h: \\server\cdrom 
   c:\windows\net use i: \\server\internetdaten 
   c:\windows\net time \\server /set /yes

Dieses Logonscript muss nun vom Windowsrechner (mit dem es ja geschrieben wurde!) auf den Server in das Verzeichnis /home/netlogon (in unserem Fall) als NEUER_BENUTZER.bat gespeichert werden. Die Rechte und weitere Einstellungen zu den Logonscripts siehe unter: Allgemeines zu Logonscripts.
Zur Erklärung der einzelnen Befehlszeilen: die erste Zeile @echo off besagt, dass die Befehle selbst nicht in das Logonfenster geschrieben werden, sondern nur die Rückgaben der einzelnen Befehle. Mit c:\windows\net start wird der Net-Dienst gestartet, falls dies nicht schon vorher geschehen ist. Die nächsten drei Zeilen im Logonscript weisen den Laufwerken G, H und I jeweils eine Netzwerkressource zu (\\server\NEUER_BENUTZER, \\server\cdrom und \\server\internetdaten). Falls es bei der Zuweisung der Laufwerksbuchstaben zu Fehlermeldungen kommt, sollte überprüft werden, ob a) der Netzwerkpath korrekt ist und ob b) eventuell schon alle verfügbaren Laufwerksbuchstaben verbraucht sind. Die maximale Anzahl von Laufwerksbuchstaben kann mit regedit auf dem Windows-Rechner im Schlüssel: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup durch das Ändern des Wertes von lastdrive höher gesetzt werden (maximaler Wert von lastdrive ist Z).
Die letzte Zeile im Logonscript synchronisiert die Uhrzeiteinstellungen vom Client mit denen des Servers (\\server).
Natürlich können in das Logonscript auch noch andere Befehle eingebunden werden, die eventuell nötig sind.

12. Schlusswort

So, dass war's. Ich hoffe, dass ich dir weiterhelfen konnte. Falls du noch irgendwelche Fragen hast oder einen (oder auch mehrere ;) ) Fehler entdeckt hast, schreib mit doch einfach eine eMail. Konstruktive Kritik und eventuell auch Lob ;) gehen auch an diese Adresse.

13. Über den Autor

Mein Name ist Thomas Kemmerich und ich wohne in Stadtoldendorf, einer Kleinstadt 70 km südlich von Hannover. Ich bin 17 Jahre alt und besuche das Campe Gymnasium in Holzminden. Eigentlich hasse ich es, solche langen Texte zu schreiben, wie diesen hier, aber diesmal hat es mir echt Spaß gemacht - lag wahrscheinlich am Thema ;). In meiner Zukunft möchte ich einen Beruf ausüben, der was mit Computern zu tun hat. Ich weiß bloß noch nicht genau was: Informatiker, Webdesigner, Programmierer oder oder oder...


(c) 2000 Thomas Kemmerich
 

Autor: Thomas Kemmerich