Samba – das ist einer der Hauptgründe dafür, dass Linux-Rechner in Microsoft-Netzwerke Einzug halten. Windows-9x- oder NT-Rechner können sich gegenseitig Zugriff auf ihre Dateien und/oder Drucker einräumen. Dazu verwenden sie ein SMB genanntes Protokoll, um den Datenaustausch abzuwickeln.
Samba ist nun ein Programm, welches unter verschiedenen Unixbetriebssystemen und eben auch unter Linux läuft und genau dieses Protokoll spricht. Damit lassen sich Dateien und Drucker von Linux aus für die Windows-Umgebung verfügbar machen.
Gute Gründe
Was zu Hause eine kleine Spielerei sein mag, kann in Unternehmen eine Menge Geld sparen. Was spricht dafür, zum Beispiel einen NT-Dateiserver in einem MS-Netzwerk durch eine Linux/Samba-Kombination zu ersetzen, die dann separat gepflegt werden muss?
- Linux kostet keine Lizenzgebühren.
- Bei gleicher Hardware-Ausstattung kann diese Kombination den NT-Server an Leistung durchaus überbieten.
- Automatisierte Datensicherungslösungen sind mit Linux schon durch "Bordwerkzeug" und nicht erst durch teure Zukaufprodukte machbar.
- Eine Linux-Maschine kann auch als Mailserver, Webserver, Web-Proxy, ISDN-Router/Internet-Zugang usw. verwendet werden.
Wenn Sie zu Hause (noch) nicht ganz auf Windows verzichten können oder wollen, können Sie sich das zu Nutze machen: Nehmen wir an, Ihre Linux-Maschine lädt mit ihrer 10-Terabyte-Platte und dem schönen 60-Seiten/Minute-48000-DPI-Farblaserdrucker (naja, ganz so übertreiben müssen Sie's vielleicht doch nicht…) dazu ein, Ihre MP3-Sammlung für die heimische Allgemeinheit zur Verfügung zu stellen und den Ausdruck Ihrer Star-Fotos zu übernehmen. Ebenso wollen Sie für WG-Kollegen und/oder Ihre Liebsten ein eigenes Heimatverzeichnis haben, in welchem sich zum Beispiel Netscape-Profile und -Cachefiles ablegen lassen.
Vorbereitung zum Tanzkurs
Voraussetzung dafür ist, dass Sie sowohl von Ihrem Linux-Rechner als auch von Ihren MS-Maschinen die jeweils anderen Rechner im Netzwerk erreichen können.
Dann gestaltet sich der Ablauf wie folgt:
- Samba installieren
- Samba konfigurieren
- Benutzer unter Linux einrichten
- Samba von Linux aus testen
- Samba von Windows aus testen
Sie werden im Folgenden auf diverse System-Kommandos stoßen, die wir an dieser Stelle nicht im Detail beschreiben können. Zu (fast) jedem dieser Kommandos können Sie sich in einem Terminal- oder Konsolen-Fenster durch Eingabe von man kommando die Manpage anschauen bzw. mit kommando --help eine Kurzhilfe ausgeben lassen.
Vermutlich haben Sie Samba bereits unwissentlich bei der Installation Ihres Linux-Systems mit auf Ihre Platte bekommen. Wie Sie dies feststellen und gegebenenfalls nachholen können, beschreibt der Kasten "Darf ich schon bitten?".
Darf ich schon bitten?
Um herauszufinden, ob Samba sich auf Ihrem Rechner bereits häuslich niedergelassen hat, melden Sie sich als Systemverwalter root an. Starten Sie ein Terminalfenster, wenn Sie in der grafischen Umgebung arbeiten.
Suchen Sie mit locate smbd oder find / -follow -name 'smbd' nach dem Samba-Server. Wenn Ihnen beide Befehle keinen Treffer zurückliefern (zum Beispiel /usr/bin/smbd), werden Sie Samba nachinstallieren müssen.
Versuchen Sie zuerst, Samba von Ihrer CD zu installieren. Dies geht zum Beispiel mit dem jeweiligen Paket-Manager, also YaST bei einer SuSE-Distribution oder rpm bei Red Hat/Mandrake/Caldera…
Um ein passendes Paket auf einer CD zu finden, binden Sie sie per Klick auf das CD-Icon auf Ihrem Desktop oder mit dem mount-Befehl zunächst in Ihr Dateisystem ein.
Wenn Ihnen das gar nichts sagt, geben Sie folgende Befehle als root ein:
mkdir /tmp/mountpoint mount -t iso9660 -o ro /dev/hdc /tmp/mountpoint
Verwenden Sie /dev/hdb, /dev/hdc, /dev/hdd für ein ATAPI-CD-ROM-Laufwerk als Slave am ersten, Master am zweiten bzw. Slave am zweiten IDE-Controller bzw. /dev/sr0 oder /dev/scd0 für ein SCSI-CD-ROM-Laufwerk. Zur Not müssen Sie halt alles durchprobieren.
Einmal gemountet, kann die Suche auf der CD losgehen:
find Mountpoint -iname '*samba*'
Setzen Sie statt Mountpoint /tmp/mountpoint ein, wenn Sie obigem Beispiel gefolgt sind, ansonsten in der Regel /mnt/cdrom oder /cdrom.
Dieser Suchbefehl liefert eventuell /tmp/mountpoint/irgend/welche/unterverzeichnisse/samba-2.9.31.rpm, /cdrom/irgend/welche/verzeichnisse/samba-2.9.31.tgz o.ä. zurück.
Wenn Sie glücklich ein rpm-File gefunden haben, geben Sie ein:
rpm -i /tmp/mountpoint/irgend/welche/unterverzeichnisse/ samba-2.9.31.rpm
Damit ist Samba installiert. Falls Fehler auftreten, Samba zum Beispiel ein anderes Paket benötigt, welches dann ebenfalls installiert werden muss, ziehen Sie ggf. einen erfahreneren Linux-Benutzer zu Rate. Eine etwas rabiate Lösung (aber dafür Ihr eigener Versuch) wäre, Linux erneut mit der dicksten Vorauswahl, die noch auf Ihrer Platte Platz hat, zu installieren.
Falls Sie eine tgz-Datei (also ein mit dem Kommando tar erstelltes und mit gzip komprimiertes Archiv) gefunden haben, kopieren Sie sie sich zur weiteren Verwendung:
cp /cdrom/irgend/welche/verzeichnisse/ samba-2.9.31.tgz /tmp/samba.tgz
Falls Sie Samba nicht auf Ihrer CD finden, können Sie die jeweils aktuelle Version über's Internet herunterladen. Besuchen Sie dazu die Web-Adresse http://www.samba.org/, und speichern Sie das herunterzuladende Paket zum Beispiel als /tmp/samba.tgz ab.
Packen Sie das Archiv aus mit
cd /tmp tar zxvf samba.tgz [Hier sehen Sie viele Dateinamen der Art samba-2.9.31/... ] cd samba-2.9.31 ./configure [viele Meldungen über Tests ] make install [viele Meldungen, die nicht mit "Error ..." enden sollten ]
Damit haben Sie Samba auf Ihrem Rechner installiert. Sie können dann später – so alles klappt – wieder aufräumen:
cd / rm -rf /tmp/samba.tgz /tmp/samba-2.9.31
An den Start
Der Löwenanteil der Samba-Konfiguration lässt sich per Webbrowser mit dem "Samba Web Administration Tool" SWAT zusammenklicken.
Damit swat gestartet werden kann, müssen zwei Dateien passende Inhalte haben. Die erste ist die Datei /etc/services. Prüfen Sie mit dem Befehl grep swat /etc/services, ob darin bereits ein Eintrag zu swat steht.
Eine korrekte Ausgabe hat in etwa folgende Form:
swat 901/tcp
Wenn Sie keine Ausgabe erhalten (oder eine, die mit einem Kommentarzeichen "#" anfängt), erzeugen Sie diesen Eintrag per
echo swat 901/tcp >>/etc/services
(Vergewissern Sie sich vor dem Abschicken dieses Kommandos bitte dringend, dass Sie wirklich zwei >-Zeichen eingetippt haben, sonst können Sie die ganze Datei ungewollt löschen!) Mit diesem Eintrag hat der Dienst swat eine Service-Nummer namens 901.
Die zweite wichtige Datei heißt /etc/inetd.conf. Suchen Sie wiederum mit grep, ob darin ein passender Eintrag steht:
grep swat /etc/inetd.conf
Brauchbar ist eine Zeile wie diese:
swat stream tcp nowait.400 root /usr/sbin/swat swat
Sowohl der nowait-Eintrag als auch der Programmpfad /usr/sbin/swat dürfen abweichen.
Falls Sie nichts Passendes finden, erzeugen Sie einen maßgeschneiderten Eintrag. Mit type erfahren Sie, wo genau das Programm swat liegt:
PATH=/usr/sbin:/sbin:/bin:/usr/bin:/usr/local/bin:$PATH export PATH type -a swat
Die Antwort des type-Befehls sollte etwa swat is /usr/sbin/swat lauten. Falls Sie so nichts finden (zum Beispiel weil Samba bei Ihrer Distribution sonstwo installiert wurde), so suchen Sie das widerspenstige Tool mit find:
find / -follow -type f -perm -111 -name 'swat' -size +400k
Dieser Befehl sucht nach einer Datei namens swat, die mindestens 400 Kbyte groß ist und die passenden Ausführungsrechte gesetzt hat.
Verwenden Sie den gefundenen Pfad zu swat dann in der folgenden Kommandozeile:
echo swat stream tcp nowait.400 root /mein/pfad/zu/ swat swat >>/etc/inetd.conf
Damit haben Sie die nötigen Voraussetzungen geschaffen, um swat zu nutzen. Lediglich der Service inetd muss noch von den Änderungen an seiner Konfigurationsdatei erfahren. Dazu wird er (neu) gestartet:
/etc/rc.d/init.d/inetd restart
Damit diese Anweisung beim nächsten Booten von alleine ausgeführt wird, ist Folgendes zu tun: Bei einer SuSE-Distribution starten Sie yast und suchen dort nach Administration des Systems-->Netzwerk konfigurieren-->Netzwerkdienste konfigurieren. Wählen Sie das Starten des inetd aus, und beantworten Sie die folgenden Fragen so sinnvoll, wie Sie können.
Alternativ dazu können Sie auch Folgendes eintippen:
perl -p -i.BAK -e 's(^(START_INETD=).*)($1"yes");' /etc/rc.config
Dies ändert genau die einzige notwendige Einstellung.
Bei Mandrake/Red Hat/Caldera reicht es, dass das Netzwerk konfiguriert wurde, um den inetd beim Booten zu starten.



