![]() |
|
Linux - Wegweiser zur Installation & Konfiguration, 3. AuflageOnline-VersionBitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. 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. Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.
|
Wenn Sie sowohl Windows als auch Linux auf Ihrem Computer installiert haben, dann wünschen Sie sich sicherlich oft, daß Sie von einem Betriebssystem auf die Dateien zugreifen können, die Sie unter dem anderen gespeichert haben. Es gibt (wenn überhaupt) nur wenige Möglichkeiten, um von Windows aus auf Dateien zuzugreifen, die unter Linux auf demselben Rechner gespeichert wurden, aber es ist erstaunlich einfach, von Linux aus an Ihre Windows-Dateien zu kommen. Linux kann Dateien auf dem traditionellen FAT-Dateisystem und dem neueren, mit Windows 95 eingeführten VFAT-Dateisystem, das lange Dateinamen unterstützt, lesen und schreiben. Es kann Dateien auf dem NTFS-Dateisystem von Windows NT lesen und wird diese irgendwann auch schreiben können.
Manchmal ist es einfacher, mittels Samba auf Ihre Dateien über das Netzwerk zuzugreifen. Wenn Sie Linux auf einem Rechner und eine Version von Windows mit eingebauter Netzwerkfunktionalität - wie Windows für Workgroups oder die neueren Windows-Versionen 95/98 oder NT - auf einem anderen Rechner verwenden, können Sie mit großer Wahrscheinlichkeit zwischen diesen beiden Rechnern Dateien austauschen.
Aber an die Daten heranzukommen ist nur der halbe Sieg. Sie müssen mit diesen auch etwas anfangen können. Es wird Sie vielleicht erstaunen, daß es schon mit dem allereinfachsten Dateiformat, reinem Text, Probleme gibt, von komplizierteren Dateiformaten wie die von Grafikprogrammen oder Textverarbeitungen einmal ganz abgesehen.
Im Abschnitt »Einen neuen Kernel erstellen« in Kapitel 7 haben Sie gelernt, wie Sie einen eigenen Kernel kompilieren. Um auf DOS-Partitionen (von MS-DOS und Windows 3.x verwendet) und VFAT-Partitionen (von Windows 95 und Windows 98 verwendet) zugreifen zu können, müssen Sie den Punkt DOS FAT fs support im Abschnitt filesystems bei der Konfiguration Ihres Kernels anwählen. Nachdem Sie diese Option angewählt haben, können Sie MSDOS fs support und VFAT (Windows-95) fs support auswählen. Mit ersterem können Sie FAT- und mit letzterem VFAT-Partitionen mounten. Die VFAT-Unterstützung ist noch relativ neu; sie erschien erstmalig in der Kernel-Version 2.0.34, wurde aber erst in neueren Kernel-Versionen wirklich stabil. |
Während Linux läuft, können Sie eine Windows-Partition wie jede andere Partition mounten. Wenn beispielsweise die dritte Partition auf Ihrer ersten SCSI-Festplatte Ihre Windows 98-Installation enthält, dann können Sie deren Dateien mit folgendem Befehl, der als root ausgeführt werden muß, verfügbar machen:
Die Option /dev/sda3 gibt die Festplatte an, die Windows 98 enthält, während die Option /mnt/windows98 irgendein beliebiges Verzeichnis sein kann, das Sie angelegt haben, um darüber auf Dateien zuzugreifen. Aber woher wissen Sie, daß Sie - in diesem Fall - /dev/sda3 benötigen? Wenn Sie sich mit den etwas gewöhnungsbedürftigen Namenskonventionen von Linux-Dateisystemen vertraut gemacht haben, dann wissen Sie, daß sda3 die dritte Partition auf der ersten SCSI-Festplatte ist. Sie können sich das Leben allerdings einfacher machen, wenn Sie sich die Partitionen aufschreiben, während Sie sie mit fdisk erzeugen.
Natürlich können Sie auch andere Mount-Punkte als //mnt/windows98 wählen. Wenn Sie eine FAT-Partition mounten wollen, dann machen Sie genau das gleiche, ersetzen aber im vorstehenden Befehl vfat durch msdos.
Die Option check bestimmt, ob der Kernel Dateinamen zulassen soll, die unter MS-DOS nicht zulässig sind, und was damit geschehen soll. Das gilt natürlich nur für das Erzeugen und Umbenennen von Dateien. Sie können für diese Option drei Werte angeben: Bei relaxed können Sie so ziemlich alles mit dem Dateinamen anstellen. Wenn dieser nicht in die 8.3-Konvention von MS-DOS-Dateien paßt, wird er entsprechend verkürzt. normal, der Default, kürzt die Dateinamen ebenfalls nach Bedarf ab, erlaubt aber keine Sonderzeichen wie * und ?, die in MS-DOS-Dateinamen nicht erlaubt sind. Und strict schließlich verbietet sowohl lange Dateinamen als auch Sonderzeichen. Um Linux hinsichtlich der Dateinamen auf der oben gemounteten Partition restriktiver zu machen, könnten Sie den mount-Befehl also folgendermaßen verwenden:
Natürlich gelten die Einschränkungen der Dateinamenlänge nicht für vfat-Dateisysteme.
Die zweite möglicherweise nützliche Option, mit der viele Anwender aber vermutlich überfordert sind, ist conv. Windows- und Unix-Systeme haben verschiedene Konventionen, wie Zeilenenden in Textdateien markiert werden. Windows verwendet sowohl ein Zeilenende (CR) als auch einen Zeilenvorschub (LF), während Unix nur den Zeilenvorschub benutzt. Die Dateien werden dadurch auf dem jeweils anderen System zwar nicht vollständig unlesbar, aber das kann schon ein Ärgernis sein. Damit der Kernel die Textdateien automatisch konvertiert, müssen Sie dem mount-Befehl die Option conv übergeben. conv hat drei mögliche Werte: binary (der Default) führt überhaupt keine Konvertierungen durch, text konvertiert jede Datei, und auto versucht zu erraten, ob die jeweils verwendete Datei eine Text- oder eine Binärdatei ist. Dies geschieht durch Betrachten der Namenserweiterung. Wenn diese in der Liste der »bekannten Binärerweiterungen« enthalten ist, wird sie nicht konvertiert, ansonsten nimmt Linux die Konvertierung vor.
Wenn Sie auf Dateien auf einer Windows NT-Partition mit einem NTFS-Dateisystem zugreifen wollen, dann brauchen Sie einen anderen Treiber. Aktivieren Sie bei der Kernel-Konfiguration die Option NTFS filesystem support. Damit können Sie NTFS-Partitionen durch Angabe des Dateisystemtyps ntfs mounten. Beachten Sie aber, daß der aktuelle NTFS-Treiber nur Lese-Unterstützung enthält. Es gibt eine Alpha-Version dieses Treibers, die auch das Schreiben unterstützt, und bei uns hat diese Version auch bestens funktioniert, aber wir empfehlen Ihnen nicht, diese zu verwenden, ohne vorher eine Sicherheitskopie Ihrer NTFS-Partition anzulegen!
Bisher haben wir darüber gesprochen, wie Sie an Windows-Partitionen auf dem gleichen Rechner herankommen. In diesem Abschnitt beschäftigen wir uns damit, wie Sie auf Partitionen (die in diesem Zusammenhang oft Shares genannt werden) zugreifen können, die auf anderen Servern liegen. In Windows-Versionen seit Windows für Workgroups können Sie anderen Computern Verzeichnisse und Drucker zur Verfügung stellen. Das dazu benutzte Protokoll heißt SMB (Server Message Block). Mit der SMB-Unterstützung von Linux können Sie auch von Linux aus auf diese Verzeichnisse zugreifen. Beachten Sie, daß die Windows-Rechner dazu so konfiguriert sein müssen, daß Sie anstelle von oder zusätzlich zum nativen Windows-Protokoll NETBEUI auch TCP/IP unterstützen, da die SMB-Unterstützung von Linux keine NETBEUI-Unterstützung beinhaltet. Natürlich muß Ihr Linux-Rechner auch ganz allgemein für TCP/IP eingerichtet sein; lesen Sie dazu Kapitel 15, TCP/IP und PPP. Wir nehmen hier an, daß zwischen Ihrem Linux-Rechner und Ihrem Windows-Rechner eine TCP/IP-Verbindung aufgebaut werden kann. |
In diesem Abschnitt behandeln wir die gemeinsame Nutzung von Dateien in einer Richtung: wie Sie von Linux aus an die Dateien auf Windows-Systemen herankommen. Im nächsten Abschnitt kümmern wir uns dann um das Gegenstück und machen ausgewählte Dateien auf Ihrem Linux-System für Leute auf Windows-Rechnern verfügbar.
Um die SMB-Unterstützung zum Laufen zu bringen, müssen Sie die folgenden Schritte ausführen:
Betrachten wir diese Schritte einen nach dem anderen. Der erste ist einfach: Im Abschnitt filesystems/Network File Systems der Kernel-Konfiguration wählen Sie SMB file system support (to mount WfW shares etc.) aus. Kompilieren und installieren Sie den Kernel, und laden Sie das Modul. Wenn Sie vorhaben, Shares von einem Windows 95-Server zu mounten, sollten Sie auch SMB Win95 bug work-around auswählen, womit ein Fehler bei der Anzeige von Verzeichnissen auf einem Windows 95-Share umgangen wird. Sie brauchen diese Option nicht, wenn Sie nur auf Shares auf Windows 98- und Windows NT-Rechnern zugreifen wollen, und Sie sollten sie dann auch nicht verwenden, weil das Lesen von Verzeichnissen dadurch verlangsamt wird.
Als nächstes müssen Sie das Samba-Paket installieren. Dieses Paket ist eigentlich dafür gedacht, SMB-Shares bereitzustellen (und nicht darauf zuzugreifen), aber es enthält ein Hilfsprogramm und eine Konfigurationsdatei, die Sie brauchen. Wenn Sie dieses Paket nicht auf Ihrem Rechner haben (überprüfen Sie, ob die Datei s/filename/smb.conf existiert), dann lesen Sie im nächsten Abschnitt nach, wie Sie es bekommen können.
Sie werden im nächsten Abschnitt lernen, wie man die Konfigurationsdatei /etc/smb.conf selbst schreibt, aber für unsere Zwecke genügt folgender Inhalt:
Es kann auch noch andere Konfigurationsparameter im Abschnitt [global] geben, und dieser Parameter muß nicht der erste sein. Wenn Sie bereits eine smb.conf haben, kann es auch noch andere Socket-Optionen geben. Lassen Sie sich davon nicht stören, und stellen Sie nur sicher, daß die Option TCP_NODELAY vorhanden ist, weil dadurch das Lesen von Verzeichnissen deutlich beschleunigt wird.
Schließlich müssen Sie noch die Partition (die in der Windows-Welt Share genannt wird) mounten. Im Gegensatz zu den im letzten Abschnitt beschriebenen Partitionstypen und ebenfalls im Gegensatz zum Network File System verwenden Sie dafür nicht den bekannten mount-Befehl, sondern einen besonderen Befehl aus dem Samba-Paket namens smbmount. Das liegt daran, daß SMB-Shares eine andere Adressierungsart verwenden. Entsprechend müssen Sie auch smbumount zum »Entmounten« eines SMB-Shares verwenden.
Wenn Sie Glück haben, ist die Anwendung von smbmount bei Ihnen ziemlich einfach. Das allgemeine Format lautet:
Dabei gibt mount_punkt wie bei mount ein Verzeichnis an. dienstname folgt mehr oder weniger den Namenskonventionen von Windows, ersetzt aber rückwärtsgeneigte Schrägstriche (backslashes) durch vorwärtsgeneigte (slashes). Wenn Sie beispielsweise einen SMB-Share von einem Computer namens winloser, der unter dem Namen mydocs auf das Verzeichnis /windocs exportiert werden soll, mounten wollen, dann könnten Sie den folgenden Befehl verwenden:
Sie können auch ein Verzeichnis unterhalb der exportierten Wurzel angeben, wenn Sie nur einen Teil des Shares importieren wollen. Wenn wir beispielsweise nicht alles aus dem Verzeichnis mydocs aus dem vorangehenden Beispiel importieren wollen, sondern nur ein Unterverzeichnis namens htmldocs, dann könnten wir folgenden Befehl verwenden:
Wenn ein Paßwort notwendig ist, um auf den Share zuzugreifen, dann wird Sie smbmount danach fragen.
Wie schon gesagt, können die hier gezeigten Schritte schon alles sein, was Sie tun müssen. Wenn Sie aber Pech haben, kann es hier unangenehm werden. Wenn Sie nicht viel über die Netzwerkfunktionen von Windows-Computern wissen, dann sollten Sie vielleicht denjenigen um Hilfe fragen, der den Windows-Rechner eingerichtet hat, und auf diese Weise herausbekommen, wo die Dateien, auf die Sie zugreifen wollen, liegen.
Das größte Problem liegt darin begründet, daß Rechner im SMB-Protokoll zwei verschiedene Hostnamen haben können: den normalen Hostnamen und einen NetBIOS-Namen. Es ist ohnehin schon nicht besonders schlau, zwei Namen zu haben, aber wenn sich die beiden unterscheiden, dann können Sie auch nicht einfach einen SMB-Share mit den vorstehenden Befehlen mounten. Wenn Sie den NetBIOS-Namen kennen, können Sie ihn mit der Option -s angeben:
Sie könnten auch versuchen, dem smbmount-Befehl die IP-Adresse des Rechners mitzuteilen, der den SMB-Share exportiert. Dies geschieht mit der Option -I (in Kapitel 15 erfahren Sie mehr über IP-Adressen). Wenn der Server die IP-Adresse 192.168.0.5 hat, könnten Sie folgenden Befehl ausprobieren:
In der Manpage des Befehls smbmount finden Sie weitere Tricks, die Sie ausprobieren können. |
Der Befehl smbmount macht es einem nicht gerade leichter, weil er Ihnen nicht wirklich sagt, wo eigentlich das Problem liegt. Mit dem Hilfsprogramm smbclient, das ebenfalls aus dem Samba-Paket stammt, können Sie Dateien von und auf einen SMB-Share kopieren und Verzeichnisinhalte anzeigen lassen. Der Befehl hat den Vorteil, etwas ausführlichere Fehlermeldungen auszugeben. Die Manpage liefert Ihnen weitere Details. Wenn Sie mit dem Befehl smbclient, aber nicht mit dem Befehl smbmount auf einen SMB-Share zugreifen können, dann ist es ziemlich wahrscheinlich, daß Sie keine SMB-Unterstützung im Kernel haben oder daß nicht auf den Mount-Punkt zugegriffen werden kann, das Problem also höchstwahrscheinlich nichts mit dem Netzwerk zu tun hat.
Wahrscheinlich wollen Sie nicht nur - wie im letzten Abschnitt beschrieben - von Linux aus auf Windows-Dateien, sondern auch von Windows aus auf Linux-Dateien zugreifen. Beispielsweise ist es ein sicherer und beliebter Netzwerkaufbau, die wichtigen Dateien der Benutzer in Unix-Heimatverzeichnissen zu lagern und auf ihren PCs bereitzustellen.
Noch eine Warnung, bevor Sie in die wundervolle Welt von Samba einsteigen: NetBIOS, das zugrundeliegende Protokoll von SMB, ist ziemlich komplex, und weil Samba all diese Komplexität berücksichtigen muß, stellt es eine gewaltige Menge von Konfigurationsoptionen bereit. Wenn Sie also ernsthaft vorhaben, eine Abteilung mit fünfzig Angestellten, die alle möglichen Windows-Varianten und möglicherweise sogar noch OS/2 benutzen, zu bedienen, dann sollten Sie die Samba-Dokumentation und vielleicht sogar ein gutes Buch über Samba gründlich lesen.
Ich kann Sie aber beruhigen: Bei den nicht so komplexen Fällen ist die Einrichtung von Samba erstaunlich einfach, sowohl was Datei- als auch was Drucker-Dienste angeht. Außerdem gibt es ein kleines Werkzeug, das Ihre Konfigurationsdatei auf Fehler überprüft.
Um Samba einzurichten, müssen Sie die folgenden Schritte ausführen:
Wenn Sie Ihr System erfolgreich eingerichtet haben, erscheinen die ausgewählten Verzeichnisse in den Auswahllisten der Windows-Benutzer in Ihrem lokalen Netzwerk, die normalerweise durch Anklicken des Symbols NETZWERKUMGEBUNG unter Windows erreicht werden. Die Benutzer dieser Systeme können Ihren Sicherheitseinstellungen entsprechend Dateien genau wie auf ihrem lokalen System lesen und schreiben.
Die meisten Linux-Distributionen enthalten heutzutage Samba, so daß Sie das Paket einfach durch Auswahl der entsprechenden Option bei der Installation von Linux auswählen können. Wenn Ihre Distribution kein Samba enthält, können Sie Samba von ftp://ftp.samba.org bekommen. Installationsanweisungen liegen bei. Folgen Sie diesen, und bauen Sie das Paket. Im Zuge des Konfigurationsprozesses müssen Sie sich entscheiden, wo die Konfigurationsdatei smb.conf liegen soll. Wir gehen hier davon aus, daß Sie /etc/smb.conf gewählt haben. Wenn Sie sich für einen anderen Ort entschieden haben, müssen Sie diesen im folgenden einsetzen.
Als nächstes müssen Sie eine smb.conf-Datei erzeugen, die für Ihr System geeignet ist. Es gibt graphische Konfigurationswerkzeuge für Samba wie das raffinierte, webbasierte SWAT (Samba Web Administration Tool), aber wie so oft ist es gut zu wissen, was unter der Oberfläche passiert, falls die graphischen Konfigurationswerkzeuge einen Fehler machen.
Samba enthält mehrere beispielhafte Konfigurationsdateien, die Sie verwenden und an Ihre Gegebenheiten anpassen können. Aber es ist auch nicht schwierig, eine von Grund auf selbst zu schreiben. In diesem Beispiel gehen wir davon aus, daß Sie Ihren unglücklichen Windows-Kollegen die Heimatverzeichnisse Ihres Rechners, Ihre Drucker und ein unter /cdrom gemountetes CD-ROM-Laufwerk zur Verfügung stellen wollen - keine besonders ungewöhnliche Situation.
Das Format der Datei smb.conf entspricht den Konfigurationsdateien von Windows 3.x. Es gibt Einträge des Typs
die in Gruppen zusammengefaßt werden. Eine Gruppe wird durch eine Zeile wie die folgende eingeleitet:
Für den Anfang erzeugen wir nur eine minimale smb.conf, die folgendermaßen aussieht:
Das schafft noch nicht viel, dient aber zwei Zwecken: Sie können Ihre Samba-Installation überprüfen und sich an ein Hilfsprogramm namens testparm gewöhnen, mit dem die Korrektheit Ihrer smb.conf überprüft werden kann.
Wir setzen hier voraus, daß Sie die Samba-Dämonen bereits - wie unten beschrieben - installiert haben. Wenn Ihre Distribution Samba enthält und Sie das Paket während der Installation angewählt haben, dann ist die Installation vielleicht auch schon für Sie erledigt worden.
Sie können jetzt Ihre Samba-Installation mit einem Befehl wie dem folgenden überprüfen (ersetzen Sie dabei TIGGER durch den Hostnamen Ihres Computers in Großbuchstaben):
Sie sollten eine ähnliche Ausgabe bekommen. Wenn das nicht der Fall ist, sind hier einige Anregungen, was Sie überprüfen können:
Wenn der Befehl nmblookup erfolgreich ausgeführt werden konnte, können Sie sich auf Entdeckungsreise begeben, was Sie mit der oben angegebenen smb.conf bereits alles machen können. Die Konfigurationsdatei ist zwar nur kurz, reicht aber schon aus, um Samba die Heimatverzeichnisse bereitstellen zu lassen. Überprüfen Sie dies mit dem Befehl smbclient, der wie ein kleiner FTP-Client für SMB-Server ist. Versuchen Sie folgendes (ersetzen Sie dabei TIGGER durch Ihren Hostnamen in Großbuchstaben und kalle durch Ihren Benutzernamen):
Samba fragt Sie nach Ihrem Paßwort und meldet Sie dann bei Ihrem Heimatverzeichnis an. Da Sie wahrscheinlich den Befehl smbclient ohnehin von Ihrem Heimatverzeichnis aus ausgeführt haben, haben Sie damit noch nicht viel gewonnen, aber immerhin wissen Sie jetzt, daß Ihre Samba-Installation wirklich funktioniert und Sie diese jetzt optimieren können.
Das Programm testparm überprüft Ihre smb.conf auf Fehler und Ungereimtheiten. Die Ausgabe dieses Programms sollte ungefähr so aussehen:
testparm sagt Ihnen, was es in der Konfigurationsdatei gerade liest und ob es in der Konfigurationsdatei Fehler gefunden hat. Wenn es nicht Loaded services file OK. meldet, wird es Ihnen sagen, wo die Fehler liegen, damit Sie diese beheben und einen neuen Versuch starten können.
Nachdem die Konfigurationsdatei erfolgreich gelesen wurde, bietet testparm Ihnen an, alle Dienste-Definitionen anzuzeigen. Dabei handelt es sich um eine lange Liste aller Dienste mit ihren jeweiligen Parametern, aber nicht nur die Parameter, die Sie angegeben haben, sondern auch die, für die es Default-Werte gibt. Weil die Ausgabe sehr, sehr lang sein kann, werden wir sie hier nicht wiedergeben. Sie kann aber nützlich sein, um zu kontrollieren, ob wirklich alle Parameter so sind, wie Sie das erwarten.
Nachdem Sie jetzt eine rudimentäre Samba-Installation haben, können wir uns eine etwas umfangreichere smb.conf ansehen:
Wir werden hier nicht jede einzelne Zeile behandeln, aber doch all das besprechen, was für Sie wichtig zu wissen ist, wenn Sie Ihren eigenen Samba-Server einrichten wollen.
Zunächst müssen Sie wissen, daß drei Abschnitte eine besondere Bedeutung haben: [global], [homes] und [printers]. Samba behandelt diese Abschnitte etwas anders als die anderen. Der Abschnitt [global] enthält Parameter, die für alle Dienste zutreffen. Beispielsweise gibt workgroup die Arbeitsgruppe an, in der sich der Samba-Server befinden soll. Wenn Sie schon Erfahrungen mit Windows-Netzwerken haben, wissen Sie wahrscheinlich schon, daß dort alle Computer zu einer bestimmten Arbeitsgruppe gehören und nur auf Dienste von Computern der gleichen Arbeitsgruppe zugreifen können. Daher müssen Sie sicherstellen, daß Sie hier den gleichen Arbeitsgruppennamen wie auf Ihren Windows-Rechnern angeben.
guest account ist nur dann wichtig, wenn jemand Zugriff auf Ihr Netzwerk haben soll, der auf Ihrem System nicht als Benutzer eingetragen ist. Für solche Gäste wollen Sie möglicherweise ein besonderes Verzeichnis bereitstellen, ähnlich wie beim anonymen FTP-Zugang. In diesem Fall legt der hier angegebene Benutzername die Zugriffsrechte der Gäste fest. keep alive gibt das Intervall an, in dem der Server überprüft, ob ein verbundener Client noch da ist und antwortet. Dieser Wert kann zwischen 0 (keine Überprüfung) und 60 Sekunden liegen. Wenn Ihr Netzwerk zuverlässig genug ist, können Sie diesen Wert ruhig auf 0 setzen.
Wir überspringen jetzt erst einmal einige Parameter, die zu den Druckerdiensten gehören, und kommen später auf diese zurück. preserve case, short preserve case und case sensitive geben an, wie Samba mit der Tatsache umgehen soll, daß es bei Dateinamen auf Unix-Systemen auf die Groß-/Kleinschreibung ankommt, auf Windows-Systemen aber nicht. Die oben gezeigten Einstellungen haben sich als nützlich erwiesen, wenn Sie Dateien sowohl von Unix als auch von Windows aus lesen und schreiben wollen, weil sie die Groß-/Kleinschreibung beim Speichern beibehalten (defaultmäßig würde alles in Kleinbuchstaben gespeichert werden), beim Suchen aber die Groß-/Kleinschreibung ignorieren, wie es ja unter Windows üblich ist.
Die folgenden Abschnitte beschreiben die Dienste, die der Samba-Server seinen Clients bereitstellt. Wir fangen hier mit [usr] und [cdrom] an, da dies einfache Einträge sind, die sich jeweils auf einen Dienst beziehen. ([homes] und [printers] sind Sonderfälle, die jeweils eine Reihe von Diensten abdecken.)
Die Gruppe [usr] stellt Windows ein Verzeichnis zur Verfügung. In diesem Fall heißt das Verzeichnis /usr, aber es dient nur der einfacheren Verwaltung, den Dienst genauso wie das Verzeichnis zu nennen. Weil der Dienst usr heißt, taucht er auch so in den Auswahllisten (Netzwerkumgebung) der Anwender auf. Sie könnten den Dienst auch clinton nennen, indem Sie ihn in der Gruppe [clinton] beschreiben, aber in diesem Fall würde der Dienst den Clients in der Netzwerkumgebung auch als clinton angekündigt werden.
Um sicherzugehen, daß der Share in der Auswahlliste sichtbar ist, haben wir den Wert des Parameters browsable auf yes gesetzt. Wenn wir das nicht getan hätten, könnten Sie immer noch auf den Dienst zugreifen, müßten aber wissen, wie er heißt, und könnten nicht über die Auswahlliste auf ihn zugreifen. read only gibt natürlich an, ob die Clients in den durch diesen Dienst bereitgestellten Verzeichnisbaum schreiben dürfen. Beachten Sie aber, daß - selbst wenn der Wert dieses Parameters no ist - die Anwender immer noch die normalen Unix-Zugriffsrechte benötigen, um irgend etwas aus diesem Dienst lesen oder schreiben zu können. create mode gibt die Zugriffsrechte an, die Dateien bekommen sollen, die ein Client auf diesem Dienst angelegt hat. directory bezeichnet die Wurzel des Verzeichnisbaums, der durch diesen Dienst exportiert wird. Beachten Sie, daß es davon abhängt, was Sie dort abgelegt haben, ob es sinnvoll ist, /usr an Windows-Rechner zu exportieren. Wenn Sie dort nur Linux-Programme und deren Hilfsdateien haben, ergibt das natürlich wenig Sinn. Schließlich gibt comment einen String an, der im Eigenschaften-Dialog von Windows oder in der Detailansicht angezeigt wird.
Der Dienst cdrom stellt Windows-Clients das CD-ROM-Laufwerk von Linux zur Verfügung. Er hat im wesentlichen das gleiche Format wie usr, verwendet aber natürlich read only = yes, da man auf eine CD-ROM nicht schreiben kann. locking = no bedeutet, daß Samba keine Sperren verwendet, um zu verhindern, daß ein Anwender die Dateien eines anderen überschreibt. In diesem Fall ist das sinnvoll, da ja ohnehin niemand auf eine CD-ROM schreiben kann und die Sperren nur Zeit verschwenden würden.
Kommen wir jetzt zu den interessanteren Diensten. Der Abschnitt [homes] unterscheidet sich von den anderen, weil er keinen einzelnen Dienst, sondern eine Reihe möglicher Dienste beschreibt. Sie verwenden ihn, um jedem Benutzer ein eigenes Verzeichnis zur Verfügung zu stellen, auf das er über Ihr LAN zugreifen kann.
Jeder Benutzer, dem Sie ein Verzeichnis zur Verfügung stellen wollen, sollte einen Benutzerzugang (account) auf Ihrem System haben. Um sich die Verwaltung einfach zu machen, sollten Sie dem Benutzernamen und dem Heimatverzeichnis den gleichen Namen wie dem Benutzernamen im Windows-Netzwerk geben. Dann brauchen Sie nur noch einen korrekt konfigurierten [homes]-Abschnitt wie den oben gezeigten.
Immer wenn sich ein Benutzer eines Windows-Clients mit diesem Dienst verbinden will, überprüft Samba den Benutzernamen, fragt nach dem Paßwort (das dann in einem Windows-Dialog eingegeben wird) und stellt schließlich das Heimatverzeichnis des Anwenders bereit. Wenn eine Verbindung aufgebaut wird, erzeugt Samba also einen sogenannten virtuellen Dienst für das Heimatverzeichnis des jeweiligen Anwenders. Das ist sehr nützlich, denn Sie müssen Samba so nicht jeden Benutzer explizit nennen, den Sie neu zu Ihrem Unix-System hinzufügen. Wenn ein Benutzerzugang eingerichtet wurde und es für diesen ein Heimatverzeichnis gibt, dann kann der Benutzer auf dieses von Windows aus zugreifen.
Damit bleiben noch die Druckerdienste. Sie können jeden Drucker, der auf Ihrem Linux-Rechner konfiguriert ist, separat konfigurieren, aber im allgemeinen ist es sehr viel einfacher, den [printers]-Abschnitt zu verwenden. So wie [homes] eine Reihe von Dateizugriffsdiensten (nämlich jedes Heimatverzeichnis) bereitstellt, stellt [printers] eine Reihe von Druckerdiensten bereit, nämlich Zugang zu jedem Drucker, der in der Datei /etc/printcap konfiguriert ist. Wie im Abschnitt »Verwalten der Druckerdienste« in Kapitel 8 bereits erklärt wurde, führt die Datei printcap alle Drucker in Ihrem System auf und erklärt, wie man darauf zugreifen kann. |
Weiterhin müssen Sie im Abschnitt [global] angeben, mit welchen Befehlen Samba Dateien an den Drucker schicken kann. Diese Befehle sind die gleichen, wie sie ein Benutzer auf der Kommandozeile eingeben würde, wobei mit einem Prozentzeichen beginnende Platzhalter (Makros) Dateinamen und andere veränderliche Parameter angeben. Die im obigen Beispiel gezeigten Werte sind für ein BSD-Drucksystem gedacht und funktionieren wahrscheinlich auch bei Ihnen. Sie verwenden eine Reihe von Makros, die Samba automatisch beim Einlesen der Konfigurationsdatei expandiert: %p gibt den Druckernamen an, %s den Namen der zu druckenden Datei und %j die Jobnummer des Druckjobs. Weitere Informationen zu Makros finden Sie in der Manpage smb.conf.
Die meisten Parameter im Abschnitt [printers] haben wir bereits behandelt, aber es gibt noch einen sehr wichtigen, über den wir noch nicht gesprochen haben: printable = yes teilt Samba mit, daß in diesem Abschnitt Druckdienste und keine Dateidienste beschrieben werden. Druckdienste sollten immer auf Nur-Lesen gesetzt sein, ansonsten könnten böswillige Anwender die Druckjobs anderer Anwender stören. Der Parameter directory gibt an, wo Samba die temporären Druckdateien ablegen soll.
Beachten Sie, daß die Einrichtung der Druckdienste auf Samba-Seite noch nicht genug ist, um von Windows aus drucken zu können. Sie müssen auch noch auf allen Windows-Clients einen Drucker konfigurieren und einen für den jeweiligen Drukker passenden Druckertreiber verwenden. Samba unterstützt die automatische Installation von Druckertreibern auf Windows 95- und Windows 98-Rechnern. Lesen Sie dazu die Manpage smb.conf (suchen Sie nach der Option printer driver file).
Immer wenn Sie Ihre Samba-Konfigurationsdatei geändert haben, sollten Sie deren Syntax mit testparm kontrollieren, um sicherzugehen, daß sich wenigstens keine Tipp- oder Syntaxfehler eingeschlichen haben. Es kann auch sinnvoll sein, sich die Werte anzusehen, die testparm für alle Parameter ausgibt. Es gibt auch ein kleines Programm namens testprns, das die Gültigkeit der Druckernamen überprüft, aber es ist nicht so nützlich wie testparm.
Normalerweise sollten die Samba-Dämonen smbd und nmbd die Konfigurationsdatei nach Änderungen automatisch einlesen, aber das funktioniert nicht immer wie gewünscht. Aber Sie können den Dämonen jederzeit ein HUP-Signal schicken, damit diese die Konfigurationsdatei neu einlesen:
Wir haben hier nur eine kleine Anzahl der vielen, vielen Optionen, die Samba kennt, beschrieben, aber mit den hier gegebenen Informationen sollten Sie in der Lage sein, Datei- und Druckdienste für Windows-Clients in vielen Situationen einzurichten, und wenn Ihnen noch Details fehlen, können Sie diese ja immer noch in der Samba-Dokumentation nachlesen.
Je nach Distribution verfügen Sie möglicherweise bereits über ein Skript, um den Samba-Dienst zu starten. In diesem Fall ist es am besten, dieses Skript zu verwenden. Beispielsweise können Sie den Samba-Server auf Red Hat-Systemen (sofern Sie ihn überhaupt installiert haben) mit folgendem Befehl starten:
und mit folgendem Befehl wieder beenden:
Auf SuSE-Systemen befindet sich dieses Skript per Voreinstellung in /sbin/init.d/ smb statt in /etc/rc.d/smb, auf Debian-Systemen befindet es sich in /etc/init.d/ samba.
Wenn Sie Samba selbst installiert haben, haben Sie zwei Möglichkeiten. Sie können die Samba-Dämonen entweder von inetd automatisch starten lassen oder diese einfach selbst von der Kommandozeile starten.
Weil letztere Variante öfter verwendet wird und besser zum Testen geeignet ist, behandeln wir sie hier. Die Manpages von smbd und nmbd beschreiben, wie das Starten von inetd aus funktioniert. |
Um Samba von der Kommandozeile aus zu starten, starten Sie einfach den Dämon durch Eingabe der folgenden Befehle (unter der Annahme, daß Sie die Samba-Dämonen in /usr/sbin installiert haben):
Wenn Sie sich einmal davon überzeugt haben, daß Ihr Samba-Server funktioniert, sollten Sie die Dämonen mit der Option -D starten, wodurch diese sich von der Shell, aus der sie gestartet wurden, abkoppeln, was die normale Vorgehensweise für Dämonen ist:
Damit können Sie auch die Shell beenden, ohne die Dämonen abzuschießen.
Die Samba-Dämonen kennen eine Reihe von Optionen, aber Sie kommen wahrscheinlich ohne sie aus; bei Bedarf finden Sie alle Informationen in den Manpages. Wir haben hier nur oberflächlich angesprochen, was Samba alles tun kann, aber Sie sollten jetzt schon einen guten Eindruck davon bekommen haben, warum Samba - obwohl es nicht speziell für Linux entwickelt wurde - eines der Softwarepakete ist, die Linux berühmt gemacht haben.
Die meisten Linux-Anwender, die Linux-Programme auf Windows-Dateien verwenden wollen, können dies durch einfaches »Mounten« der Windows-Partitionen, wie im Abschnitt »Mounten von DOS-, VFAT- und NTFS-Partitionen« beschrieben, tun. Wenn das »Mounten« einmal korrekt eingerichtet ist, können Sie normale Shell-Befehle verwenden, um sich in den Verzeichnissen zu bewegen, und vi, Perl-Skripten und welche Programme auch immer Sie kennen und lieben ausführen.
Bevor Linux nichtnative Dateisysteme unterstützte, war eine Reihe von Programmen namens MTools ziemlich bedeutend. Es handelt sich dabei um eine Sammlung einfacher Befehle, mit denen man Windows-Verzeichnisse und -Dateien von Linux aus manipulieren kann. Inzwischen werden MTools hauptsächlich noch für den Zugriff auf Windows-formatierte Disketten verwendet, weil man damit eine Diskette nicht erst mounten muß, nur um eine Datei davon zu lesen. Die Verwendung Windows-formatierter Disketten kann eine nützliche und effiziente Möglichkeit sein, um kleinere Datenmengen von einem Windows-Rechner auf einen Linux-Rechner und wieder zurück zu bringen, wenn es keine Netzwerkverbindung zwischen den beiden gibt.
Hier kommt eine Zusammenfassung der MTools-Hilfsprogramme, die in den zur Distribution gehörenden Manpages näher beschrieben werden:
Wie bereits erwähnt, sind die unterschiedlichen Konventionen von Linux und Windows für Zeilenenden in Textdateien eines der größten Probleme bei der gemeinsamen Nutzung von Dateien. Glücklicherweise gibt es eine Reihe von Möglichkeiten, dieses Problem zu lösen:
Wir betrachten zwei dieser kleinen Hilfsprogramme: duconv und recode.
duconv ist ein winziges Programm, das mit den meisten Distributionen mitgeliefert wird und die Zeilenenden wie auch einige der in europäischen Sprachen verwendeten Sonderzeichen von ihren DOS-Encodierungen in die Unix-Encodierung konvertiert. Letzeres ist übrigens nicht notwendig, wenn die Textdateien mit neueren Windows-Versionen (wie Windows 95 oder Windows 98) geschrieben wurden, da Windows die gleiche Encodierung für Sonderzeichen wie Unix verwendet, nämlich den internationalen Standard ISO-Latin-1, auch liebevoll ISO-8859-1 genannt.
Um eine Windows-Textdatei in eine Unix-Textdatei zu konvertieren, rufen Sie duconv folgendermaßen auf:
Für die andere Richtung (von Unix zu Windows) verwenden Sie die Option -d:
duconv ist ein nettes kleines Hilfsprogramm, aber wenn Sie etwas Ausgefeilteres benötigen, dann sollten Sie recode aus dem GNU-Projekt verwenden. Dieses Programm kann so ziemlich jeden Textdateistandard in so ziemlich jeden anderen Textdateistandard konvertieren. recode ist allerdings nicht so einfach zu verwenden wie duconv.
Normalerweise wird recode so verwendet, daß sowohl der alte als auch der neue Zeichensatz (Encodierungen von Textdateikonventionen) sowie die zu konvertierende Datei angegeben wird. recode überschreibt die alte Datei mit der konvertierten, die den gleichen Namen trägt. Um beispielsweise eine Textdatei von Windows nach Unix zu konvertieren, würden Sie folgenden Befehl verwenden:
textdatei wird dann durch die konvertierte Version ersetzt. Sie können sich wahrscheinlich schon denken, daß Sie zum Zurückkonvertieren der gleichen Datei in Windows-Konventionen folgenden Befehl verwenden müssen:
Außer ibmpc (wie es unter Windows verwendet wird) und latin1 (wie es unter Unix verwendet wird) gibt es noch viele andere Möglichkeiten, darunter latex für die -Variante, diakritische Zeichen zu encodieren (siehe »TeX und LaTeX«), und texte für französische E-Mail-Nachrichten. Eine vollständige Liste bekommen Sie mit:
Wenn es Ihnen nicht gefällt, daß recode immer Ihre alte Datei mit der neuen überschreibt, dann können Sie von der Tatsache Gebrauch machen, daß recode auch von der Standardeingabe lesen und auf die Standardausgabe schreiben kann. Um dostextdatei in unixtextdatei zu konvertieren, ohne dostextdatei zu löschen, könnten Sie folgendes machen:
Mit den beiden hier beschriebenen Werkzeugen können Sie mit Textdateien einigermaßen komfortabel umgehen, aber damit stehen wir noch ganz am Anfang. Es wird komplizierter, wenn es um Grafikdateien geht. Beispielsweise werden Pixelgrafiken unter Windows normalerweise als bmp-Dateien gespeichert, die unter Unix ziemlich ungewöhnlich sind. Glücklicherweise gibt es eine Reihe von Werkzeugen, die bmp-Dateien in Grafikdateiformate wie xpm konvertieren können, die unter Unix gängiger sind. Zu diesen gehört das Shareware-Bildbetrachtungs- und -verarbeitungsprogramm xv, das wahrscheinlich in Ihrer Distribution enthalten ist.
Noch komplizierter wird es, wenn es um proprietäre Dateiformate wie diejenigen geht, die Office-Programme üblicherweise abspeichern. Während die diversen Varianten des doc-Dateiformats der Textverarbeitung Word für Windows gewissermaßen eine Lingua franca für Textverarbeitungsdateien unter Windows geworden sind, war es bis vor kurzem kaum möglich, diese Dateien unter Linux zu lesen. Glücklicherweise sind in letzter Zeit eine Reihe von Softwarepaketen erschienen, die diese Dateien lesen (und manchmal sogar schreiben) können. Zu diesen gehört die Textverarbeitung WordPerfect, die Office-Suite StarOffice und die Office-Suite ApplixWare. Denken Sie aber daran, daß diese Konvertierungen nie perfekt sein werden; es ist sehr wahrscheinlich, daß Sie die Dateien von Hand nachbearbeiten müssen.
Im allgemeinen gilt, daß es um so wahrscheinlicher ist, ein Dateiformat auch unter Linux lesen oder sogar schreiben zu können, je gängiger das Dateiformat unter Windows ist. Dies könnte auch eine gute Gelegenheit sein, gleich zu offenen Dateiformaten wie RTF (Rich Text Format) oder XML (Extensible Markup Language) zu wechseln, wenn Sie auch unter Windows arbeiten. Im Zeitalter des Internet, in dem Informationen frei verbreitet werden können, sind proprietäre, nicht dokumentierte Dateiformate nur noch ein Anachronismus.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2000, O'Reilly Verlag