Mit OPT_SAMBA='yes' können Windows-Clients direkt über das SMB-Protokoll drucken. Es ist dann keine weitere Client-Software (bis auf den Druckertreiber) notwendig.
Wichtigste Voraussetzung zum Drucken über Samba ist aber immer die Einstellung von OPT_LPD='yes' !
Weiterhin ermöglicht dieses optionale Paket rudimentäre Fileserverfunktionen. Rudimentär deshalb, da aus Platzgründen eine sehr alte Samba-Version verwendet wird, die nicht alle Funktionen der aktuellen Version unterstützt und aufgrund der eingeschränkten Nutzer- und Rechteverwaltung von fli4l nur simple Funktionen ermöglicht. Diese alte Samba-Version hat weitere Einschränkungen, z.B. werden Partitionen grösser als 4 GB nicht korrekt erkannt. Das spielt auf fli4l aber keine Rolle, da fli4l als Router konzipiert wurde und nicht als Server mit gigabyte-grossen Festplatten. Wer einen ausgewachsenen File-Server benötigt, sollte dafür besser
verwenden. Die für dieses System intergrierte Samba-Version ist immer auf dem aktuellen Stand und hat weder Probleme mit grossen Partitionen noch mit dem Einsatz als Primary Domain Controller (PDC). Die Konfiguration lehnt sich an fli4l an und ist daher ähnlich einfach. Samba für fli4l ist vorrangig dafür gedacht, eine einfachere Druckerkonfiguration unter Windows zu ermöglichen. Für die kommenden Versionen von fli4l wird die Fileserverfunktionalität nicht weiter ausgebaut werden, denn Fileserverdienste haben aus Sicherheitsgründen auf einem Router nichts zu suchen.
Es ist möglich, Samba ohne Nmbd (NetBios NameServer, siehe OPT_NMBD) zu installieren, da beide zusammen so viel Platz verbrauchen, dass in der Regel keine 1,44 MB-Disketten mehr benutzt oder keine anderen optionalen Programme mehr verwendet werden können.
Deshalb wurden die an sich zusammengehörigen Programme auf einzelne OPT- Pakete verteilt - OPT_SAMBA und OPT_NMBD. Auch wenn diese OPT-Pakete zusammen mit OPT_LPD in einem grossen Paket stecken, können sie so einzeln aktiviert werden. Eine Ausnahme ist OPT_NMBD, welches nicht ohne OPT_SAMBA läuft.
Wer auf die Anzeige in der Netzwerkumgebung unter Windows verzichten will, setzt OPT_SAMBA='yes' und OPT_NMBD='no'. Trotzdem die Freigaben unter Windows nicht angezeigt werden, ist ein Zugriff darauf möglich, wenn man den genauen Pfad kennt. Dazu gibt es weiter unten unter ``Einrichtung eines Windows-SMB-Clients bei aktiviertem Samba (OPT_SAMBA='yes')'' eine genauere Beschreibung.
Wer auf die Anzeige in der Netzwerkumgebung nicht verzichten möchte, setzt
OPT_SAMBA='yes' und OPT_NMBD='yes'.
Damit die Freigaben in der unter Windows definierten Arbeitsgruppe sichtbar werden, muss die Arbeitsgruppe für Samba mit der unter Windows definierten Arbeitsgruppe übereinstimmen. Wenn also unter Windows die Arbeitsgruppe ``workgroup'' heisst, muss diese Variable folgendermassen definiert werden:
SAMBA_WORKGROUP='workgroup'
Dies ist auch die Standard-Einstellung.
Wenn hier eine IP-Adresse oder ein Adressbereich aus dem lokalen Netz hinterlegt wird, haben die entsprechenden Rechner vollen Zugriff auf die fli4l-Ramdisk über das Netzwerk. Bei Verwendung von OPT_NMBD='yes' können diese Rechner über die Netzwerkumgebung von Windows auf fli4l zugreifen.
Hier ein Beispiel mit der IP-Adresse 192.168.6.2:
SAMBA_ADMINIP='192.168.6.2'
Will man mehreren Rechnern diesen Zugriff gestatten, hat man verschiedene Möglichkeiten:
SAMBA_ADMINIP='192.168.6.2 192.168.6.3'
SAMBA_ADMINIP='192.168.'
Hierbei ist unbedingt auf den Punkt am Ende zu achten!
Diese Variable sollte aus Sicherheitsgründen möglichst nur für die Fehlersuche gefüllt werden!
In der Standardeinstellung ist die fli4l-Ramdisk über die Netzwerkumgebung nicht sichtbar und nicht im Zugriff.
Standard-Einstellung: SAMBA_ADMINIP=''
Von welchen Netzen aus ist der Zugriff auf Samba gestattet?
Mit diesem Parameter wird eingestellt, welche Netze auf Samba zugreifen dürfen. Samba ermittelt und berücksichtigt beim Erstellen einer neuen Konfiguration die internen Netze aus den Grundeinstellungen von fli4l. Aus Sicherheitsgründen wird nur Rechnern aus diesen Netzen ein Zugriff gestattet. Sollen Rechner aus anderen Netzen zugreifen dürfen, müssen diese hier gesondert konfiguriert werden. Es reicht dabei aus, nur die zusätzlichen Netze anzugeben. Die Angabe hat dabei in der Form
NETZWERKNUMMER/ANZAHL-DER-GESETZTEN-BITS-IN-NETMASK
zu erfolgen, also z.B. fuer Netze der Form 192.168.x.0:
SAMBA_TRUSTED_NETS='192.168.6.0/24'
Standard-Einstellung: SAMBA_TRUSTED_NETS=''
Mit dieser Variable kann eingestellt werden, ob Aktionen in den Dateien /var/log/log.smb und /var/log/log.nmb aufgezeichnet werden sollen. Die Variable sollte nur für die Fehlersuche auf 'yes' gesetzt werden, da die Log-Dateien in die RAM-Disk geschrieben werden und deshalb die Gefahr besteht, dass diese irgendwann überläuft. SAMBA_LOG gilt gleichermassen für OPT_SAMBA und OPT_NMBD, da OPT_NMBD ohne OPT_SAMBA nicht läuft.
Standard-Einstellung: SAMBA_LOG='no'
Über SAMBA_SHARE_N wird die Anzahl der zu erstellenden bzw. zu benutzenden Freigaben eingestellt. Wenn die Freigaben nicht existieren, werden sie automatisch angelegt und wenn sie existieren, werden sie einfach benutzt. Das Erstellen von Freigaben ist normalerweise nur sinnvoll in Verbindung mit einem gemounteten Medium wie einer Festplatte, einem CD-ROM-Laufwerk oder einer Compact-Flash-Disk (siehe OPT_MOUNT).
Wird hier eine 2 eingegeben, müssen die folgenden Variablen vorhanden und mit sinnvollen Werten gefüllt sein:
Standard-Einstellung: SAMBA_SHARE_N='0'
Mit SAMBA_SHARE_x_NAME wird der Name der x'ten Freigabe eingestellt. Unter diesem Namen ist die Freigabe zu erreichen bzw. bei aktiviertem OPT_NMBD in der Netzwerkumgebung von Windows-Rechnern sichtbar (siehe auch SAMBA_SHARE_x_BROWSE weiter unten).
Trotzdem unter Windows 12 Zeichen mit Umlauten für den Freigabenamen hinterlegbar sind, ist der Name bei fli4l aus DOS-Kompatibilitätsgründen beschränkt: Es dürfen hier Namen hinterlegt werden, die maximal 8 Zeichen lang sind und aus Buchstaben oder Zahlen bestehen. Umlaute und Sonderzeichen wie ä, ö, ü, ß, _, @, usw. sind nicht erlaubt!
SAMBA_SHARE_1_NAME='share1'
Ausserdem sollten Freigabenamen im Netzwerk eindeutig sein, also nicht doppelt vorkommen. Dieser Name wird automatisch von fli4l an die Pfadangabe aus SAMBA_SHARE_x_PATH angehängt. Im Pfad aus dieser Variablen wird also versucht, ein Verzeichnis mit dem Namen ``share1'' zu erstellen, wenn ein solches noch nicht existiert. Es ist zwingend erforderlich, dass die Partition, die auf diesen Pfad gemountet ist, schreibbar eingemountet ist. Wenn das nicht der Fall ist, gibt es beim Booten eine Fehlermeldung. Existiert das Verzeichnis schon, wird es nicht überschrieben, damit schon abgelegte Daten erhalten bleiben.
Standard-Einstellung: SAMBA_SHARE_1_NAME='share1'
Über SAMBA_SHARE_x_RW wird eingestellt, ob die x'te Freigabe beschreibbar sein soll.
Wird hier 'no' gewählt, können Dateien von dieser Freigabe gelesen aber nicht dorthin gespeichert werden. Das ist vor allem bei Dateien sinnvoll, die man anderen zur Verfügung stellen möchte aber dabei unbedingt verhindern will, dass diese Dateien verändert oder sogar gelöscht werden.
Wird 'yes' gewählt, ist diese Freigabe für alle in der Variable SAMBA_SHARE_x_NET eingestellten IP-Adressen oder Netzwerke oder wenn diese leer ist, für alle Rechner des internen Netzwerkes (inclusive aller Subnetze) les- und beschreibbar.
Standard-Einstellung: SAMBA_SHARE_1_RW='yes'
Mit SAMBA_SHARE_x_BROWSE wird eingestellt, ob die x'te Freigabe bei aktiviertem OPT_NMBD in der Netzwerkumgebung sichtbar sein soll oder nicht. Möchte man verhindern, dass andere User in der Netzwerkumgebung die Freigabe sehen und dadurch darauf zugreifen können, setzt man
SAMBA_SHARE_x_BROWSE='no'
Nutzer, die wissen, dass die Freigabe existiert, können trotzdem darauf zugreifen, indem sie z.B. unter Start/Ausführen
\\fli4l\sharename
eingeben. Dabei ist ``fli4l'' durch den Namen des fli4l-Routers zu ersetzen - wenn er davon abweicht - und ``sharename'' mit dem Namen, den man in SAMBA_SHARE_x_NAME eingetragen hat.
Standard-Einstellung: SAMBA_SHARE_1_BROWSE='yes'
Der Pfad zur x'ten Freigabe
Über SAMBA_SHARE_x_PATH wird der Pfad zur x'ten Freigabe eingestellt. Dazu ein Beispiel. Wenn man mittels
OPT_MOUNT='yes' MOUNT_N='1' MOUNT_1_DEV='hda4' MOUNT_1_POINT='/usr/local/data' MOUNT_1_FS='ext2' MOUNT_1_CHECK='yes' MOUNT_1_OPTION='rw'
die vierte primäre Partition der ersten Festplatte unter /usr/local/data in das Dateisystem eingemountet hat und eine einzelne Freigabe mit
SAMBA_SHARE_N='1' SAMBA_SHARE_1_NAME='share1' SAMBA_SHARE_1_RW='yes' SAMBA_SHARE_1_BROWSE='yes'
erstellt hat, kann man mit
SAMBA_SHARE_1_PATH='/usr/local/data'
das Verzeichnis ``share1'' unter /usr/local/data erstellen und freigeben. Als Verzeichnisname wird der Inhalt der Variable SAMBA_SHARE_1_NAME also in diesem Fall share1 an den Pfad in SAMBA_SHARE_1_PATH angehangen, darf also in SAMBA_SHARE_1_PATH selbst nicht definiert werden! Wenn das Verzeichnis nicht existiert, wird es automatisch angelegt und wenn es existiert, wird es einfach benutzt. Es gibt im Moment keine Möglichkeit, einmal erstellte Verzeichnisse über die samba_lpd.txt zu löschen, da bei einer Fehleingabe die schon abgelegten Dateien gelöscht werden würden. Die im Verzeichnis liegenden Dateien können bei aktiviertem und konfigurierten OPT_NMBD über den Explorer gelöscht werden, wenn die Freigabe in der Variablen SAMBA_SHARE_x_RW schreibbar definiert wurde; das Verzeichnis selbst nur über die Kommandozeile.
Standard-Einstellung: SAMBA_SHARE_1_PATH='/usr/local/data'
Mit dieser Variable kann gesteuert werden, welche Rechner die x'te Freigabe nutzen dürfen. Man kann damit den Zugriff auf einzelne Rechner oder einzelne Subnetze beschränken. In der Standardeinstellung bleibt die Variable leer. Hiermit können alle Rechner des internen Netzwerkes (inclusive aller Subnetze) auf die Freigabe zugreifen.
Die Variable kann wie SAMBA_ADMINIP gefüllt werden.
SAMBA_SHARE_1_NET='192.168.6.2 192.168.0.1'
Bei zwei Netzen der Form 192.168.141.0/ 255.255.255.0 und 192.168.142.0/ 255.255.255.0
SAMBA_SHARE_1_NET='192.168.141. 192.168.142.'
oder besser
SAMBA_SHARE_1_NET='192.168.'
Hierbei ist unbedingt auf den Punkt am Ende zu achten!
Standard-Einstellung: SAMBA_SHARE_1_NET=''
Erstellung einer bestimmten Anzahl von Freigaben für CDROMs: z.B. '2'
Über SAMBA_CDROM_N wird die Anzahl der zu erstellenden Freigaben für eingebaute CD-ROM-Laufwerke eingestellt.
Diese, die folgenden Variablen und die dazugehörigen Erweiterungen des Samba-Skriptes wurden geschaffen, um die Freigabe von CDROMs etwas fehlertoleranter zu gestalten. Hatte man in älteren fli4l-Versionen versucht, ein CDROM-Laufwerk freizugeben, welches nicht eingemountet war oder hatte man einen falschen Pfad für die Freigabe angegeben, ging das natürlich schief. Das neue Skript gibt im Zusammenhang mit den folgenden Variablen schon eingemountete CDROMs unter dem in OPT_MOUNT definierten Mountpoint frei oder erzeugt für noch nicht eingemountete CDROMs einen Mountpoint, und gibt den anschliessend frei.
Bei der letzten Variante wird das Laufwerk erst bei Bedarf (Zugriff über die Netzwerkumgebung) unter /mnt/cdromx eingemountet, wobei das x für das x'te CD-ROM steht. Man sollte deshalb darauf achten, dass eigene Mountpoints nicht mit diesen Angaben kollidieren. Wenn niemand mehr auf diese Freigabe zugreift, wird nach einiger Zeit das Laufwerk automatisch dismountet. Damit kann man die CDROM entnehmen, ohne sie manuell dismounten zu müssen, was sich vor allem bei CDROM-Servern mit mehreren Laufwerken anbietet, bei denen die CDs öfter mal gewechselt werden.
Wird bei SAMBA_CDROM_N eine 2 eingegeben, müssen die folgenden Variablen
vorhanden und mit sinnvollen Werten gefüllt sein.
Standard-Einstellung: SAMBA_CDROM_N='0'
Gerätename des CDROM-Laufwerks: z.B. 'hdc'
Hier wird das Gerät angegeben, welches freigegeben werden soll. Die Konventionen für Gerätenamen können in der Dokumentation zu OPT_MOUNT nachgelesen werden.
Wenn am 2. IDE-Kanal ein IDE-CDROM-Laufwerk als Master angeschlossen ist, setzt man zum Beispiel
SAMBA_CDROM_1_DEV='hdc'
Standard-Einstellung: SAMBA_CDROM_1_DEV='hdc'
Mit dieser Variable kann gesteuert werden, welche Rechner das x'te CDROM-Laufwerk von fli4l nutzen dürfen. Man kann damit den Zugriff auf einzelne Rechner oder einzelne Subnetze beschränken. In der Standardeinstellung bleibt die Variable leer. Hiermit können alle Rechner des internen Netzwerkes ( inclusive aller Subnetze ) auf das x'te CDROM-Laufwerk an fli4l zugreifen. Bei zwei an fli4l angeschlossenen CDROM-Laufwerken müssen
vorhanden sein.
Die Variable kann wie SAMBA_ADMINIP gefüllt werden.
SAMBA_CDROM_1_NET='192.168.6.2 192.168.0.1'
Bei zwei Netzen der Form 192.168.141.0/ 255.255.255.0 und 192.168.142.0/ 255.255.255.0 und einem CDROM-Laufwerk
SAMBA_CDROM_1_NET='192.168.141. 192.168.142.'
oder besser
SAMBA_CDROM_1_NET='192.168.'
Hierbei ist unbedingt auf den Punkt am Ende zu achten!
Standard-Einstellung: SAMBA_CDROM_1_NET=''
Hier kann der Name des Druckers am x'ten Druckerport (LPD_PORT_x) in der Netzwerkumgebung eingestellt werden. Dazu muss selbstverständlich
OPT_NMBD='yes'
gesetzt sein, da sonst in der Netzwerkumgebung nichts angezeigt wird. Es dürfen hier Namen hinterlegt werden, die maximal 8 Zeichen lang sind und aus Buchstaben oder Zahlen bestehen. Umlaute und Sonderzeichen wie ä, ö, ü, ß, _, @, usw. sind nicht erlaubt!
Wenn die Variable leer bleibt, wird als Druckername der voreingestellte Name verwendet (prx for lokale Drucker, reprx für Remote-Drucker, wobei das x für 1,2,3 usw. steht).
Standard-Einstellung: SAMBA_LPD_PORT_1_NAME=''
Mit dieser Variable kann gesteuert werden, welche Rechner die Drucker von fli4l nutzen dürfen. Man kann damit den Zugriff auf einzelne Rechner oder einzelne Subnetze beschränken. In der Standardeinstellung bleibt die Variable leer. Hiermit können alle Rechner des internen Netzwerkes (inclusive aller Subnetze) auf den x'ten Drucker an fli4l drucken (siehe LPD_PORT_x). Bei zwei an fli4l angeschlossenen Druckern müssen SAMBA_LPD_PORT_1_NET und SAMBA_LPD_PORT_1_NET vorhanden sein.
Die Variable kann wie SAMBA_ADMINIP gefüllt werden.
SAMBA_LPD_PORT_1_NET='192.168.6.2 192.168.0.1'
Bei zwei Netzen der Form 192.168.141.0/ 255.255.255.0 und 192.168.142.0/ 255.255.255.0 und einem Drucker am ersten parallelen Anschluss:
SAMBA_LPD_PORT_1_NET='192.168.141. 192.168.142.'
oder besser
SAMBA_LPD_PORT_1_NET='192.168.'
Hierbei ist unbedingt auf den Punkt am Ende zu achten!
Standard-Einstellung: SAMBA_LPD_PORT_1_NET=''
Hier kann der Name des Druckers an der x'ten LPD_REMOTE_x_IP in der Netzwerkumgebung eingestellt werden. Dazu muss selbstverständlich
OPT_NMBD='yes'
gesetzt sein, da sonst in der Netzwerkumgebung nichts angezeigt wird. Es dürfen hier Namen hinterlegt werden, die maximal 8 Zeichen lang sind und aus Buchstaben oder Zahlen bestehen. Umlaute und Sonderzeichen wie ä, ö, ü, ß, _, @, usw. sind nicht erlaubt!
Wenn die Variable leer bleibt, wird als Druckername der voreingestellte Name verwendet (prx for lokale Drucker, reprx für Remote-Drucker, wobei das x für 1,2,3 usw. steht).
Standard-Einstellung: SAMBA_LPD_REMOTE_1_NAME=''
Hiermit wird der Zugriff über Samba auf die per LPD_REMOTE_N konfigurierten Remote-Drucker gesteuert. Wenn ein Remote-Drucker per
LPD_REMOTE_N='1' LPD_REMOTE_1_IP='192.168.6.99'
und
LPD_REMOTE_1_QUEUENAME='pr1'
eingerichtet wurde, taucht dieser Drucker bei aktiviertem OPT_SAMBA und OPT_NMBD unter dem Namen repr1 in der Netzwerkumgebung von Windows-Clients auf. Mit dieser Variable kann nun gesteuert werden, welche Rechner die Remote-Drucker von fli4l nutzen dürfen. Man kann damit den Zugriff auf einzelne Rechner oder einzelne Subnetze beschränken. In der Standardeinstellung bleibt die Variable leer. Hiermit können alle Rechner des internen Netzwerkes (inclusive aller Subnetze) auf den x'ten Remote-Drucker an fli4l drucken (siehe LPD_REMOTE_x_IP). Möchte man explizit Hosts oder Netze für die Ausgabe auf diese Drucker eintragen, gilt das unter SAMBA_LPD_PORT_x_NET beschriebene.
Standard-Einstellung: SAMBA_LPD_REMOTE_1_NET=''
Samba für fli4l ist als Timeserver konfiguriert. Wenn
OPT_TIME='yes'
gesetzt wurde und auf dem Router die Uhrzeit mit Zeitservern aus dem Internet synchronisiert wird, kann man diese aktuelle Uhrzeit an die Clients weitergeben (auch wenn nicht auf jedem Client imonc installiert ist, der beim Start die Zeitsynchronisation übernehmen kann). Um die Zeit der Clients mit fli4l per Samba zu synchronisieren, reicht es aus in einer DOS-Box den Befehl
net time \\fli4l /set /yeseinzugeben, wobei fli4l durch den Hostnamen des Routers zu ersetzen ist. Praktischer ist natürlich eine Batchdatei im Autostartordner oder eine Verknüpfung auf eine solche Batchdatei mit identischem Inhalt.