Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Fremdgegangen - Andere Protokolle Fremdgegangen - Andere Protokolle Novell-Zugriffe »

Unterabschnitte
  • Konfigurationsdatei smb.conf
  • Starten der Dämonen
  • Zugriff unter MS Windows
  • Encrypted Password
  • Dämon oder inetd
  • Zugriff auf Windowsnetze

Samba: UNIX im Windows-Netz

Samba ist eine freie Software, die es UNIX-Rechnern ermöglicht, mit dem Windows Netzprotokoll SMB zu kommunizieren. Samba ist so leistungsfähig, dass Sie es gut verwenden können, um einen Ersatz für einen MS Windows NT Server zu stellen. Es gibt aber auch einen SMB-Client, mit dem Sie Zugriffe auf Windowsressourcen erhalten.

Der Autor von SAMBA, der Autralier Andrew Tridgell hatte zunächst seine Software einfach Server und später SMBserver genannt. Als sich herausstellte, dass eine andere Softwarefirma das Namensrecht für SMBserver hatte, suchte er mit grep in einem Wörterbuch nach einen Begriff mit den Buchstaben SMB und stieß auf SAMBA.vgl. die Datei history, die mit SAMBA ausgeliefert wird.

Die Wirkung, die die Veröffentlichung dieser Software hatte, lässt sich heute kaum noch ermessen. Das Network File System (NFS siehe S. nfs), das das Standardnetzwerkdateisystem unter UNIX ist, war von anderen Betriebssystemen nur durch Zusatzsoftware erreichbar. Abgesehen von FTP (siehe S. ftp) gab es also keine Möglichkeit, Dateien zwischen UNIX und MS Windows mit Bordmitteln innerhalb des Netzes auszutauschen. Durch SAMBA war es plötzlich möglich, dass ein Linux Rechner als Ersatz für einen MS Windows NT Server auftrat. Da Sie auf einem Linux-Server im Gegensatz zu NT nicht unbedingt die grafische Oberfläche installieren müssen, ist die Hardwareanforderung erstaunlich gering. Dazu kommt, dass Sie im Gegensatz zum MS Windows NT eine enorme Skalierbarkeit gewinnen. Den Linuxrechner können Sie auch durch leistungsfähige UNIX-Server ersetzen.

Samba arbeitet als TCP/IP-Service. Entsprechend müssen alle SMB-Pakete über das Protokoll TCP/IP transportiert werden. Obwohl in reinen Windowsnetzen oft IPX, das alte Protokoll von Novell, eingesetzt wird, ist das kein so großer Aufwand, da inzwischen fast jeder Windowsrechner auch mit dem Internet verbunden wird und in dem Zusammenhang TCP/IP sowieso installiert wird. IPX können Sie meist ohne Probleme deinstallieren, sofern nicht tatsächlich ein älteres Novellnetz eingesetzt wird. Lediglich MS Windows 3.11 besaß noch nicht von Haus aus TCP/IP. Das können Sie allerdings kostenlos von Microsoft erhalten. Quelle:

ftp://ftp.microsoft.com/peropsys/windows/public/tcpip/WFWT32.EXE

Da Samba ein TCP/IP-Dienst ist, müssen in der /etc/services Einträge gemacht werden:

netbios-ssn     139/tcp
netbios-ns      137/tcp

Konfigurationsdatei smb.conf

Die zentrale Konfigurationsdatei heißt /etc/smb.conf. Die Datei ist in mehrere Abschnitte eingeteilt und ähnelt einer MS Windows INI-Datei. Die Abschnitte sind mit Titeln in rechteckigen Klammern eingeleitet. Die einzelnen Einstellungen werden durch Zuweisungen gemacht, die der Struktur Variable=Wert folgen. Der Wert umfasst den Rest der Zeile. Das Semikolon ist das Kommentarzeichen.

Der wichtigste Abschnitt heißt global. Er beschreibt den Server als solchen.

[global]
   server string = Gaston, der freundliche NT-Ersatz
   workgroup = WILLEMER
   share modes = yes

; encrypt passwords wird ab NT 4.0 SP3 und Win98 gebraucht 
   encrypt passwords = yes

printing = bsd
   printcap name = /etc/printcap

; wichtig, wenn es ein weiteres Interface zum Internet gibt.
   interfaces = 192.168.109.144/255.255.255.0

Der server string ist nur ein Kommentar, der allerdings allen Clients übermittelt wird. Wichtig ist die workgroup, die hier originellerweise WILLEMER heißen soll. Die Rechner, die zu einer gemeinsamen Arbeitsgruppe gehören, können sich leicht gegenseitig Ressourcen zur Verfügung stellen. Neben den Workgroups gibt es noch das Konzept der Windowsdomänen. Samba kann auch als ein solcher Domänenserver laufen. Nähere Informationen sind in der SAMBA beiliegenden Dokumentation zu finden.

Die beiden Variablen printing und printcap name ermöglichen den Zugriff auf die in der /etc/printcap angegebenen Drucker unter MS Windows. Sie können die Drucker, die mit GhostScript betrieben werden, unter MS Windows als normale PostScript-Drucker ansprechen. Wollen Sie einen speziellen MS Windows"-Druckertreiber verwenden, müssen Sie auf Druckereintrag der Datei printcap verweisen, der keinen if-Eintrag besitzt.

Im Abschnitt global kann eingestellt werden, auf welche Netzinterfaces Samba zugreift. Diese Einstellung ist vor allem bei einem Rechner erforderlich, der auch ein Interface zum Internet besitzt. Ansonsten versucht Samba, auch auf diesem Wege Freunde zu finden. Das wäre natürlich ein eklatantes Sicherheitsrisiko. Hinter dem Schrägstrich steht die Netzmaske (siehe S. subnet). Alternativ kann auch die CIDR-Schreibweise verwendet werden (siehe S. cidr):

interfaces = 192.168.109.144/24

Im weiteren Verlauf der smb.conf werden die Ressourcen beschrieben, die den anderen Rechnern im Netz zur Verfügung gestellt werden. Jede der Ressourcen wird in rechteckigen Klammern genannt.

[homes]
   comment = Heimatverzeichnis
   browseable = no
   read only = no
   create mode = 0750

[c-drive]
   comment = C-Laufwerk
   browsable = yes
   public = yes
   create mode = 0755
   path = /windows/C
   writeable = yes

Die Ressource homes bietet jedem angemeldeten Benutzer sein Heimatverzeichnis an. Meldet sich also der Anwender arnold unter MS Windows an und verbindet homes mit einem Netzlaufwerk, findet er das Verzeichnis, das laut der passwd-Datei unter UNIX sein Heimatverzeichnis ist.

Die Ressource c-drive bietet das Verzeichnis /windows/C als Netzlaufwerk an. Dieses ist auf meinem Computer tatsächlich eine Windowspartition. Das ist aber keineswegs Voraussetzung. Es kann jedes beliebige Dateisystem verwendet werden.

Die Option browsable beschreibt, ob die Ressource angezeigt wird, wenn Sie sie von einem Windowsrechner aus anzeigen lassen. Im Beispiel können Sie also homes nicht sehen, wenn Sie sich von einem Windowsrechner die Ressourcen des Servers anzeigen lassen. Allerdings können Sie den Namen homes bei einer Verknüpfung direkt angeben. Der Sinn dieser Konfiguration ist es, dass man nicht alle Ressourcen einer breiten Öffentlichkeit darbieten möchte.

Alle Ressourcen müssen natürlich einen Pfad haben, unter dem sie im UNIX Verzeichnisbaum zu erreichen sind. Eingetragen wird dieser Pfad unter der Option path. Ausnahmen sind wie gesagt die Heimatverzeichnisse, da sie ihren Pfad über die Datei /etc/passwd finden.

Die Option create mode stellt ein, welche Berechtigung eine per Samba erzeugte Datei bekommt. Windowsnetze können nicht mit den Berechtigungen umgehen, die UNIX-Dateisysteme kennen. Darum muss vor allem festgelegt werden, welche Rechte die Dateien bei ihrer Erzeugung bekommen. Die Codierung entspricht der, wie sie vom Befehl chmod bekannt ist (siehe S. chmod).

Wenn die Datei smb.conf vollständig konfiguriert wurde, kann Sie durch den Aufruf des Programms testparm gestestet werden. Das Programm gibt Hinweise auf eventuelle Fehler. Hier der Anfang einer Protokollausgabe des Programms:

Load smb config files from /etc/smb.conf
Processing section "[homes]"
Processing section "[c-drive]"
Processing section "[printers]"
Loaded services file OK.
Press enter to see a dump of your service definitions  

Nach dem Drücken der Returntaste wird die komplette Konfiguration angezeigt.

Starten der Dämonen

Samba besteht aus zwei Prozessen, smbd und nmbd. Der Server smbd bietet die eigentlichen Dateien- und Druckerdienste an. Der Server nmbd ist für die Namensdienste zuständig. Für die ersten Tests können Sie sie einfach direkt nacheinander von der Konsole starten. Mit Hilfe des Befehls ps kann in der Prozesstabelle geprüft werden, ob die Prozesse gestartet sind. Ist das nicht der Fall, ist die smbd.conf nicht in Ordnung. Nähere Informationen liefern die Dateien log.smbd und log.nmdb, die sich im Verzeichnis /var/log/samba befinden.

Nachdem die Prozesse gestartet sind, wird zum Testen der Konfiguration als nächstes versucht, die Umgebung lokal zu testen. Dazu wird auf derselben Maschine ein SMB-Client gestartet.

smbclient -L localhost

Nach einer Passwortabfrage werden Informationen über die lokale Samba-Umgebung ausgegeben.

Domain=[WILLEMER] OS=[Unix] Server=[Samba 2.0.7]

Sharename      Type      Comment
        -----      --      ----
        c-drive        Disk      C-Laufwerk
        cdrom          Disk      Linux CD-ROM
        IPC$ IPC       IPC Service (Gaston, der freund
        ascii          Printer   cljet5-a4-ascii-mono-300
        lp2            Printer   cljet5-a4-auto-color-300
        lp-mono        Printer   cljet5-a4-auto-mono-300
        cljet5-a4-raw  Printer   cljet5 a4 raw
        faxprint       Printer   fax

Server               Comment
        -----            ----

Workgroup            Master
        -----            ----                               

Zugriff unter MS Windows

Zunächst muss sichergestellt sein, dass der Windowsrechner zur gleichen Workgroup gehört. Als Netzprotokoll muss TCP/IP installiert sein. Die Funktion der Verbindung prüfen Sie zunächst mit dem Befehl ping. Der Sambaserver sollte antworten. Wenn dies alles funktioniert, können Sie in der Netzwerkumgebung nachsehen, ob die Workgroup dort erscheint und dann auch der Sambaserver auftaucht. Sie können dem etwas nachhelfen, indem Sie mit der Funktion »Computer suchen« nach dem Server suchen lassen.

Die Netzwerkumgebung ist leider in der Anzeige der verfügbaren Rechner nicht besonders verlässlich. Windowsrechner suchen in gewissen Abständen, welche anderen Rechner sich im Netz befinden. Danach aktualisieren sie ihre Netzwerkumgebung. So kann es sein, dass die angezeigten Rechner längst abgeschaltet sind oder nicht angezeigte Rechner in Wirklichkeit längst verfügbar sind.

Encrypted Password

MS Windows NT 4 ab Service Pack 3 sowie MS Windows 98 und alle neueren Versionen senden verschlüsselte Passwörter über das Netz. Leider entspricht die Verschlüsselung nicht dem UNIX-Standard, so dass Samba nicht mehr einfach die Datei /etc/passwd verwenden kann, wie das mit den unverschlüsselt arbeitenden Windowsversionen noch funktionierte. Zur Speicherung der verschlüsselten Passwörter wird eine eigenständige Datei namens /etc/smbpasswd verwendet. Um eine solche Datei zu erzeugen, liefert Samba ein Skript mit, der aus der passwd-Datei eine smbpasswd-Datei generiert. Der Aufruf lautet:

cat /etc/passwd | bash mksmbpasswd.sh >/etc/smbpasswd

Danach kann root für jeden Benutzer ein Startpasswort mit dem Kommando smbpasswd eintragen, indem er beispielsweise für den Benutzer willemer eingibt:

gaston# smbpasswd willemer
New SMB password: 
Retype new SMB password:
Password changed for user willemer. 
gaston#

Dämon oder inetd

Je nach Einsatz gibt es zwei Arten, einen Samba Server zu starten. Wird er nur hin und wieder in Anspruch genommen, reicht es, den Server durch den inet-Dämon zu verwalten. Wird der Server intensiv als Firmenserver verwendet, sollten Sie die Dämonen aus den rc-Skripten starten.

Die Einträge in der /etc/inetd.conf lauten, falls der Dienst auf diesem Wege gestartet werden soll:

netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd
netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd

Ein kill -1 auf die PID des inetd bringt ihn dazu, seine Konfigurationsdatei noch einmal zu begutachten. Wird nun der entsprechende Dienst angefordert, startet inetd die benötigten Samba-Dämonen.

Wird Samba als Server in einer Firma eingesetzt, der regelmäßig benutzt wird, werden die Serverprozesse beim Booten durch eine rc-Datei gestartet. In der SuSE-Distribution wird das durch Setzen der Variable START_SMB auf »yes« in der /etc/rc.config erreicht. Auf anderen Plattformen muss die Datei smb, die dem Sambapaket beiliegt, mit symbolischen Links in die richtige Startumgebung gebracht werden (siehe S. rcskripts).

Zugriff auf Windowsnetze

Zum SAMBA-Paket gehört auch ein Client. So können UNIX-Rechner auch auf Netzwerklaufwerke von MS Windows oder von SAMBA-Servern zugreifen. Das Programm smbclient wurde schon zum Testen des Sambaservers kurz vorgestellt. Mit der Option -L Servername zeigt es alle Ressourcen, die der Server anbietet und die als browsable gekennzeichnet sind.

Der Zugriff auf die von gaston angebotenen Heimatverzeichnisse würde von einem anderen UNIX-Rechner per smbclient ermöglicht

smbclient gastonhomes

Nach dem Aufruf wird ein Passwort angefordert und Sie befinden sich in einer Umgebung, die stark an den FTP-Client erinnert. Und tatsächlich funktioniert er auch mit den gleichen Kommandos. Etwas irritierend sind die vielen Backslashes. An sich werden vor dem Wort gaston nur zwei davon benötigt. Da aber der Backslash von der Shell interpretiert wird, braucht man hier vier. Allerdings können Sie auch normale Schrägstriche verwenden und dann sieht der Aufruf schon etwas übersichtlicher aus.

smbclient //gaston/homes

Interessanter als ein FTP-Zugang dürfte aber das Einbinden einer Ressource in den eigenen Verzeichnisbaum sein. Dazu gibt es den Befehl smbmount, der einem mount mit dem Dateisystemtyp smbfs entspricht. Das Einbinden der Ressource HOMES vom Rechner gaston kann also mit einem der beiden Befehle erfolgen:

smbmount //gaston/homes /mnt -o username=arnold
mount -t smbfs -o username=arnold //gaston/homes /mnt

Die Verbindung wird mit dem normalen umount wieder aufgelöst:

umount /mnt



« Fremdgegangen - Andere Protokolle | Fremdgegangen - Andere Protokolle | Novell-Zugriffe »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de