Using SambaRobert Eckstein, David Collier-Brown, Peter Kelly1st Edition November 1999 1-56592-449-5, Order Number: 4495 416 pages, $34.95 |
4.2 Besondere Sections
Nachdem wir nun mit den Variablen nasse Füße bekommen haben, sollten wir über ein paar besondere Sections der Samba Konfigurationsdatei sprechen. Noch einmal: sei unbesorgt, wenn du nicht jede einzelne der nachfolgend angeführten Optionen verstehst, wir werden jede davon im Laufe der bevorstehenden Kapitel durchnehmen.
4.2.1 Die [ globals] Section
Die
[globals]
Section scheint in jeder virtuellen Samba Konfigurationsdatei auf, selbst wenn es nicht Pflicht ist, eine zu definieren. Jede in dieser Section gesetzte Option der Datei gilt für alle anderen Shares, wie wenn der Inhalt der Section in die Share selbst kopiert wäre. Eine Sache schiebt einen Riegel vor: andere Sections können dieselbe Option in ihrer Section mit einem neuen Wert anführen; das hat den Effekt, dass der in der[globals]
-Section festgelegte Wert überschrieben wird.Um dies zu illustrieren, werfen wir wieder einen Blick in das Eröffungsbeispiel dieses Kapitels:
[global] log level = 1 max log size = 1000 socket options = TCP_NODELAY IPTOS_LOWDELAY guest ok = no [homes] browseable = no map archive = yes [printers] path = /usr/tmp guest ok = yes printable = yes min print space = 2000 [test] browseable = yes read only = yes guest ok = yes path = /export/samba/testIm vorstehenden Beispiel, wo wir einen Client mit der
[test]
-Share verbanden, würde Samba zuerst in der[globals]
-Section lesen. An dieser Stelle würde es die Optionguest
ok
=
no
als die globale, voreingestellte für jede Share setzen, die es in der ganzen Konfigurationsdatei antrifft. Das schließt die[homes]
und die[printers]
-Share mit ein. Wenn es nun die[test]
-Share liest, wird es dort die Konfigurations-Optionguest
ok
=
yes
finden und den voreingestellten Wert der[globals]
-Section mit dem Wertyes
iim Kontext der[test]
-Share überschreiben.Jede Option, die außerhalb einer Section (vor der ersten markierten Section) erscheint, wird ebenfalls als globale Option angenommen.
4.2.2 Die [homes] Section
Wenn ein Client versucht, sich mit einer Share zu verbinden, die nicht in der smb.conf erscheint, sucht Samba nach einer Share
[homes]
in der Konfigurationsdatei. Wenn eine existiert, so wird angenommen, der unidentifizierte Sharename sei ein Unix-Username, der in der Passwort-Datenbank des Sambaservers gesucht wird. Wenn dieser Username aufscheint, nimmt Samba an, der Client sei ein Unix-User, der versucht, sich mit seinem (oder ihrem) Home-Verzeichnis auf dem Server zu verbinden.Nimm z.B. an, eine Client-Maschine verbindet sich zum ersten Mal mit dem Sambaserver
hydra
und versucht, sich mit einer Share namens [alice]
zu verbinden. Es ist keine Share[alice]
in der smb.conf -Datei definiert, aber es gibt eine[homes]
, daher durchsucht Samba die Passwort-Datenbank und findet einenalice
-Useraccount auf dem System vor. Dann prüft Samba das vom Client eingegebene Passwort gegenüber dem Unix-Passwort des Usersalice
's Unix password - entweder mit der Passwort-Datenbank, wenn es nicht verschlüsselte Passwörter benützt, oder Sambas smbpasswd -Datei, wenn verschlüsselte Passwörter in Gebrauch stehen. Stimmen die Passwörter überein, dann weiß Samba, es hat richtig vermutet: die Userinalice
versucht, sich mit ihrem Home-Verzeichnis zu verbinden. Samba erzeugt dann eine Share namens[alice]
für sie.Der Prozess der Verwendung der
[homes]
-Section, User zu erzeugen (und das Behandeln ihrer Passwörter), wird im Kapitel 6, User, Security und Domains, genauer diskutiert.4.2.3 Die [printers] Section
Die dritte besondere Section heißt
[printers]
und ist[homes]
ähnlich. Wenn ein Client versucht, sich mit einer Share zu verbinden, die nicht in der smb.conf -Datei vorkommt und deren Name nicht in der Passwort-Datei steht, wird Samba überprüfen, ob sie nicht eine Drucker-Share ist. Samba liest dazu die Druckfähigkeitsdatei (gewöhnlich /etc/printcap), um nachzuschauen, ob der Name der Share hier aufscheint.[1] Ist das der Fall, so erzeugt Samba eine nach dem Drucker benannte Share.[1] In Abhängigkeit deines Systems könnte diese Datei nicht /etc/printcap sein. Du kannst mit dem in Samba enthaltenen Befehl testparm den Wert der Konfigurationsoption
printcap
name
bestimmen; das wurde als Vorgabewert gewählt, als Samba kompiliert wurde.Wie bei
[homes]
bedeutet das, dass du keine Share für jeden deiner Systemdrucker in der smb.conf unterhalten musst. Statt dessen anerkennt Samba die Unix-Printer-Registry, wenn du danach fragst, und stellt die registrierten Drucker den Client-Maschinen zur Verfügung. Es gibt jedoch eine deutliche Grenze: wenn du einen Account mit dem Namenfred
und einen Drucker namensfred
hast, findet Samba immer den User-Account zuerst, selbst wenn der Client sich in Wirklichkeit mit dem Drucker verbinden will.Der Prozess der Einrichtung der Share
[printers]
wird genauer im Kapitel 7, Drucken und Namensauflösung, beschrieben.4.2.4 Konfigurations-Optionen
Optionen in der Samba Konfigurationsdatei fallen in eine von zwei Kategorien: global oder share. Jede Kategorie bestimmt, wo eine Option in der Konfigurationsdatei autreten kann.
- Global
Globale Optionen müssen in der
[global]
Section aufscheinen und nirgends sonst. Das sind Optionen, die typisch für das Verhalten des Sambaservers selbst gelten und nicht für irgendeine seiner Shares.- Share
Share-Optionen können in bestimmten Shares oder in der
[global]
Section auftreten. Kommen sie in der[global]
Section vor, werden sie ein vorgegebenes Verhalten für alle Shares festlegen, es sei denn, eine Share übeschreibt die Option mit einem eigenen Wert.Außerdem kann eine Konfigurations-Option Werte annehmen, die in vier Kategorien eingeteilt werden können. Es sind folgende:
- Boolean
Das sind einfach Ja- und Nein-Werte, können aber mit einem von folgenden dargestellt werden:
yes
,no
,true
,false
,0
,1
. Die Werte können groß oder klein geschrieben werden:YES
bedeutet dasselbe wieyes
.- Numerisch
Eine Ganzzahl, Hexadezimalzahl oder eine Oktalzahl. Die Standard-Syntax für Hexadezimalzahlen ist
0x
nn und0
nnn für Oktalzahlen.- Zeichenfolge (String)
Eine Zeichenfolge von Groß- und Kleinbuchstaben, wie ein Dateiname oder ein Username.
- Aufzählende Liste
Eine endliche Liste aus bekannten Werten. Eine Boolean-Liste ist eine aufzählende Liste mit nur zwei Werten.
© 1999, O'Reilly & Associates, Inc.