Letzte Änderung: 18.5.98 von B. Tritsch
Zurück zum Index "PC- und MS-Windows-Support"
Das Network File System wurde von der Firma Sun Microsystems, Inc. entwickelt und auf den Markt gebracht. Sun hat sich der Philosophie der verteilten und offenen Systeme verschrieben. Daher wurde NFS von Anfang an so konzipiert, daß es die Kopplung von Rechnern verschiedener Hersteller mit den unterschiedlichsten darauf ablaufenden Betriebssystemen erlaubt.
Die Spezifikation der NFS-Protokolle wurde von Sun veröffentlicht, eine Referenzimplementation für UNIX ist allen interessierten Parteien für einen günstigen Preis zugänglich. Die meisten Hersteller von UNIX- und PC-Systemen haben haben diese Referenzimplementation oder eine Variante davon auf ihre Rechner portiert und führen dafür Lizenzgebühren an Sun ab. Damit wurde NFS (zumindest für die UNIX-Welt) zum de-facto Standard für den verteilten Dateizugriff.
Die Nutzung im Internet-Umfeld ist evident: NFS erlaubt die Kopplung von Rechnern an einem Standort und damit die Verbindung ihrer Dateisysteme. Dadurch lassen sich vorher getrennte Rechner, die verschiedene Internet-Dienste zur Verfügung stellen, als eine logische Einheit betrachten.
NFS erlaubt Programmen, auf Dateien in NFS-Server-Rechnern schreibend und lesend zuzugreifen. Der Zugriff geschieht für diese Programme transparent: sie müssen für den Betrieb mit NFS weder abgeändert, noch speziell vorbereitet oder mit zusätzlichen Parametern aufgerufen werden. Die Dateien im NFS-Server werden zugänglich gemacht, indem sie zunächst exportiert werden. Die NFS-Clients greifen auf diese exportierten Dateisysteme oder Ausschnitte aus Dateisystemen zu, indem sie sie in das eigenen Dateisystem einhängen. Dies wird im Netzwerkjargon "mounten" genannt. Die Bereitstellung der Zugriffsmöglichkeit erfolgt also nicht auf Veranlassung des zugreifenden Programms, sondern muß bereits vor dem Zeitpunkt des Zugriffs für lokale Systeme geschehen sein.
Ein Teilaspekt der Transparenz ist die Geschwindigkeit des Dateizugriffs über das Netz. Diese muß so hoch sein, daß kein merklicher Unterschied zu einem lokalen Plattenzugriff bemerkbar ist.
Ist der NFS-Server eine UNIX-Maschine, so muß für die Authorisierung der Benutzer auf dieser Maschine oder mindestens einem anderen UNIX-Rechner im Intranet ein pcnfsd-Daemon gestartet sein. Zudem sollte der lockd-Daemon auf der Zielmaschine laufen.
Für den Zugriff auf NFS-Ressourcen stehen für NT eine Reihe von NFS-Clients zur Verfügung. Sie sind jedoch nicht direkt von Microsoft, sondern nur von "Third Party Herstellern" erhältlich. Dies sind z.B. Sun PC-NFS, Chameleon NFS oder NCD NFS.
Die Samba Software-Suite ist eine Sammlung von Protokollen, das das SMB-Protokoll für UNIX-Systeme implementiert. Das Protokoll wird auch als LanManager- oder NetBios-Protokoll referenziert.
Die Samba-Suite besteht aus mehreren Komponenten, die im folgenden aufgezählt werden sollen:
Alle Komponenten sind als Quellcode erhältlich und können daher selbst übersetzt und an die Gegebenheiten angepaßt werden. Für die meisten Standardplattformen sind jedoch auch die Binaries verfügbar.
Der smbd-Daemon ist ein gewöhnlicher UNIX-Hintergrundprozeß, der Server Message Blocks (SMBs), d.h. NetBIOS-Aufrufe über TCP/IP, in einer Windows-konformen Art verarbeiten und beantworten kann. Die Funktionalität umfaßt insbesondere Datei- und Druckdienste. Die Konfiguration des smbd-Daemons geschieht über die Datei smb.conf.
Der smbd-Daemon besitzt für seinen Start eine Reihe von Einstellungsoptionen (Start über /etc/rc). Eine Option betrifft seine Natur als Daemon oder normaler Prozeß. Läuft er als Daemon, so wird für jede Anfrage ein UNIX-Fork gestartet, das eine eigene Kopie des smbd erzeugt.
Eine Option ist auch der dynamische Start des smbd-Daemons über den inetd-Daemon (und dort über das Konfigurationsfile /etc/inetd.conf). Hierbei sieht der inet-Daemon die SMB-Anfrage eines Benutzers und startet einen zugehörigen smbd-Prozeß. D.h., für jeden momentanen Benutzer wird ein eigener smbd-Prozeß gestartet.
Weitere Optionen sind Logging, Sockets, Ports usw, die jedoch auch schon beim Übersetzen des smbd-Programms voreingestellt werden können. Die Portnummer muß unter Umständen über die /etc/services definiert werden. Alternativ dazu kann die Portnummer auch über NIS vergeben werden.
Wesentlich für die Konfiguration des Samba-Dienstes ist die Datei smb.conf. Sie enthält Laufzeitinformationen für den smbd-Daemon. Das Dateiformat wird durch Sektionen und Parameter bestimmt. Die Sektion beginnt mit dem Sektionsnamen in eckigen Klammern und geht bis zur nächsten Sektion. Jede Sektion beinhaltet Parameter in der Form "Name = Wert".
Die Datei ist zeilenbasiert, d.h. jeder Zeilenumbruch bewirkt die Interpretation eines Kommentars, eines Sektionsnamens oder eines Parameters. Für Sektionen und Parameter ist die Groß- und Kleinschreibung unerheblich. Jede Zeile, die mit einem Semikolon beginnt, wird als Kommentar interpretiert. Jede Zeile, die mit einem \ endet, wird wie unter UNIX üblich in der nächsten Zeile weitergeführt.
Nur das erste Gleichzeichen bei der Parameterangabe ist signifikant. Leerzeichen um das "=" werden ignoriert.
Es exisitieren drei globale Sektionen, die [global], [homes] und [printers] heißen. Diese müssen speziell behandelt werden. Insbesondere die zweite Sektion ist für die Auflösung von Home Directories nötig. Damit kann vor allem durch eine globale Einstellung einer großen Zahl von Benutzern aus der Windows-Welt heraus Zugriff auf ihre UNIX-Directories gegeben werden. Problematisch ist hierbei nur das Service Pack 3 von Windows NT. Dort wurde das Security-Verhalten von Netzwerkzugriffen so verändert, daß die Samba-Kompatibilität nicht mehr ohne Modifikation der NT-Registry gegeben ist. Im Unterverzeichnis HKEY_LOCAL_MACHINE\ system\ currentcontrolset\ services\ rdr\ parameters muß ein Eintrag "EnablePlainPasswortText" als Typ DWORD mit dem Wert "1" eingetragen werden.
Im folgenden soll eine Beispieldatei die Funktionalität von smb.conf aufzeigen:
; Configuration file for smbd. ; ============================================================================ ; For the format of this file and comprehensive descriptions of all the ; configuration option, please refer to the man page for smb.conf(5). ; ; The following configuration should suit most systems for basic usage and ; initial testing. It gives all clients access to their home directories and ; allows access to all printers specified in /etc/printcap. ; ; Things you need to check: ; -------------------------- ; ; 1: Check the path to your printcap file. If you are using a system that does ; not use printcap (eg., Solaris), create a file containing lines of the ; form ; ; printername|printername|printername| ; ; where each "printername" is the name of a printer you want to provide ; access to. Then alter the "printcap =" entry to point to the new file. ; ; If using Solaris, the following command will generate a suitable printcap ; file: ; ; lpc status | grep ":" | sed s/:/\|/ > myprintcap ; ; 2: Make sure the "print command" entry is correct for your system. This ; command should submit a file (represented by %s) to a printer ; (represented by %p) for printing and should REMOVE the file after ; printing. ; ; It is also a good idea to use an absolute path in the print command ; as there is no guarantee the search path will be set correctly. ; ; 3: Make sure the "lpq command" entry is correct for your system. This ; command should produce output similar to the SunOS lpq command. It will ; receive the printer name as it's first argument. An example of correct ; output is: ; ; Rank Owner Job Files Total Size ; 1st tridge 149 README 8096 bytes ; 2nd fred 150 FOO 1024 bytes ; ; The "Rank" keyword is used to find the start of real output. ; ; It is also a good idea to use an absolute path in the lpq command ; as there is no guarantee the search path will be set correctly. ; ; 4: Make sure that the user specified in "guest account" exists. Typically ; this will be a user that cannot log in and has minimal privileges. ; Note that this user does need to be able to print. Often the "nobody" ; account cannot print. ; ; 5: Ensure that the path specified in the [printers] entry is correct. This ; path should EITHER be world-writable with the sticky bit set OR be ; writable by the default user only. The latter is probably preferable. ; ; [global] print command = /usr/ucb/lpr -r -P%p %s lpq command = /usr/ucb/lpq -P printer name = psgrz printcap name = /etc/printcap guest account = nobody workgroup = IGD_FHG_DE wins support = yes wins proxy = yes ; os level = 33 interfaces = 153.97.128.98/19 server string = %h (Samba %v) domain master = no domain controller = ntsrv1 preserve case = yes short preserve case = yes ; status = yes [homes] comment = Home Directories read only = no browseable = no locking = no ;valid users = @grz create mode = 0750 ;[printers] ; comment = All Printers ; path = /usr/spool/lpd ; printable = yes ; public = yes ; writable = no ; create mode = 0700 ; ; ; ; **** GRZ Services **** [cdrom0] comment = GRZ CD-Drive 0 path = /GRZ/cdrom0h mangled map = (makefile. makefile) public = yes writable = no printable = no [cdrom1] comment = GRZ CD-Drive 1 path = /GRZ/cdrom1h copy = cdrom0 [pool] comment = Pool Stuff path = /hgdv/tmp browseable = no public = yes writable = yes printable = no [public] comment = Public Stuff path = /GRZ/pc/public public = yes writable = yes printable = no write list = grzpc
Die Samba-Software läßt sich an folgender Adresse abholen:
ftp://samba.anu.edu.au/pub/samba/samba-Version.tar.gz
Oder bequem (Einfuegung von F. Scheurer):
lokale Kopie von samba-2.2.1a.tar.gz
Die WWW-Seite ist: