Weiter Zurück Inhalt

4. Konfiguration

Die zentrale Konfiguration von SAMBA erfolgt in der Datei smb.conf, die distributionsabhängig an unterschiedlichen Orten sich befinden kann. Änderungen an dieser Datei bemerkt SAMBA selbständig, man braucht also nach Änderungen den Dienst i.d.R. nicht neustarten.

Der Aufbau dieser Datei ist simpel:

Es gibt einzelne Sektionen, die die für diese Sektion gültigen Optionen beinhaltet. Ich möchte dies an einem Beispiel erklären:

4.1 Server

Global

Zuerst einmal [global]

# Global parameters
[global]
        security = user
        encrypt passwords = Yes
        workgroup = SGS
        browsable = Yes
        browse list = Yes
        netbios name = pinguin
        interfaces = 192.168.1.1/255.255.255.0 lo
        bind interfaces only = yes
#
        read bmpx = Yes
        max xmit = 8192

# nach 10 Minuten werden Verbindungen ohne offene Files als geschlossen betrachtet
        deadtime = 10


        keepalive = 30
        read size = 8192
        socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192

# wichtig: unser Logon-Script. Relativ zu [netlogon]!
# Wichtig: DOS-Datei mit DOS-Zeilenenden!
        logon script = LOGON.BAT

# für uns wichtig
        domain logons = Yes

# damit gewinnt SAMBA gegen eNTen
        os level = 64

# JA!, wir sind der Master-Browser!
        preferred master = Yes
        domain master = Yes
        local master = Yes

# Ja!, wir sind auch WINS-Server
        wins support = Yes


        create mask = 0600

        character set = iso8859-1
        client code page = 850
        logon drive = y:


# angeblich braucht Access folgendes:
        oplocks = yes
        strict locking = yes

        printcap name = /etc/printcap
        load printers = yes

Damit ist der grundlegende Serverdienst konfiguriert - kommen wir nun an die eigentlichen Shares:

Logon und Rechner-Verzeichnis

Das Rechner-Verzeichnis ist eine Sache, die ich mir eingerichtet habe, dazu später mehr.

[netlogon]
        comment = Netzwerk-Login
        # preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/samba.log
        path = /usr/local/samba/netlogon

[machine]
        comment = Netzwerk-Login
        path = /usr/local/samba/netlogon/%m

Man kann seine Konfiguration mittels testparm aus dem SAMBA-Paket testen. Damit können Syntaxfehler leicht gefunden werden, natürlich keine logischen Fehler wie falsche Rechte.

Logon-Script

Über das Logon-Script, welches bei einer Domänen-Anmeldung auf dem Client ausgeführt wird, kann man auf den Clients diverse Dinge tun, u.a. Uhrzeit stellen und Laufwerke zu Shares mappen. Achtung: um Win2000-Clients mit der Uhrzeit versorgen zu können, muß man in den lokalen Sicherheitseinstellungen authentifizierten Benutzern das Recht zur Uhrzeiteinstellung einräumen.

net time \\pinguin /set /yes
net use X: /d
net use X: \\pinguin\machine
call X:\machine.bat
net use X: /d
net use W: \\pinguin\Arbeitsvorbereitung
net use X: \\pinguin\Allgemein
net use Y: \\pinguin\homes
call y:\user.bat

Der 2. Befehl unmountet ein evtl. vorhandenes gemapptes Share an X:, um dort das Share "machine" zu mappen. Dieses Share ist in der smb.conf als /usr/local/samba/netlogon/%m definiert, das Makro %m wird mit dem NetBIOS-Namen des Clients erweitert. Ich habe für einige Rechner spezielle Mappings, z.B. für Rechner, an denen ein Scanner angeschlossen ist. Daher rufe ich mit dem 4. Befehl dann eine rechnerspezifische Startdatei auf.

Weiter rufe ich eine Userspezifische Batch-Datei auf. Dies enthält dann z.B. für unterschiedliche Mitarbeiter unterschiedliche Mappings von Laufwerken. So erreiche ich, daß sich z.B. ein Mitarbeiter auch an einen Rechner eines anderen anmelden kann und dennoch seine gewohnten Laufwerke gemappt vorfindet.

Zu beachten ist bei diesen Startdateien, daß diese auf dem Client durchgeführt werden, also müssen sie dort korrekt lesbar sein. Daher Achtung, wenn man diese auf dem Server editiert, es müssen die DOS-typischen Zeilenumbrüche vorhanden sein.(vi: set ff=dos)

Wie im Beispiel gesehen, können diverse Makros verwendet werden. Hier einige dieser Makros:

%u   Username
%m   NetBios-Name des Clients
%I   IP-Adresse von Client
%d   PID des Serverprozesses
%a   Betriebssystemversion vom Client
%T   aktuelle Datum und Uhrzeit

HOME

[homes]
        #preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/samba.log
        comment = Heimatverzeichnis
        veto files = .*
        writeable = Yes
        browseable = No
# Achtung: folgendes ist wichtig für Win200 ab SP2 zur Ablage der Profile
        nt acl support = no

spezielle Anforderungen

Manchmal ist z.B. ein für alle frei zugängliches Verzeichnis recht nett. Ich nenne ein solches Share "Allgemein":

[Allgemein]
        comment = Allgemein
        path = /usr/local/samba/Allgemein
        read only = no
        public = yes
        guest ok = yes
        create mask = 0666
        directory mask = 0777

Oder ich möchte ein Verzeichnis, was nur von einer Mitarbeitergruppe ansprechbar ist:

[Objekt]
        comment = Objektteam Heynitz
        path = /usr/local/samba/Objektteam
        read only = no
        create mask = 0660
        directory mask = 0770
        force group = objekt
        valid users = @objekt

Drucker

Da bei uns das 'normale' lpr-System läuft, gestaltet sich die Freigabe der Drucker recht einfach:

[printers]
   comment = All Printers
   path = /var/spool/lpd
   browseable = yes
   public = yes
   guest ok = yes
   printable = yes

Damit werden alle dem Server bekannten Drucker (/etc/printcap) auch unter SAMBA sichtbar.

4.2 Und die Clients

Win2000 kann echt zickig sein und erfreut oft mit sinnfreien Fehlermeldungen. Daher sollten einige Dinge beachtet werden:

  1. auf dem Server zuerst einen Maschinenaccount anlegen
    root# /usr/sbin/useradd -g 100 -d /dev/null -c "machine nickname" -s /bin/false machine_name$ 
    root# passwd -l machine_name$
    root# smbpasswd -a -m machine_name
    
  2. root muß als SMB-User angelegt sein (smbpasswd -a root), hierbei kann ein anderes Passwort als das UNIX-Passwort verwendet werden.
  3. es dürfen keinerlei Laufwerke gemappt sein

4.3 SWAT

SWAT Samba Web Administration Tool richtet sich vor allem an Anwender, die (noch) ihre Probleme mit der Kommandozeile haben.

SWAT ermöglicht, via Web-Oberfläche die vielfältigen Optionen der SAMBA-Konfiguration auf einfache Art und Weise zu beeinflussen.

4.4 WebMin

Eine weitere Möglichkeit der grafischen Administration von SAMBA stellt WebMin bereit.

Da ich weder SWAT noch WebMin nutze, gehe ich auf diese Programme nicht weiter ein.

4.5 Fehlersuche

Normalerweise läuft SAMBA auf Anhieb. Falls es dennoch Probleme geben sollte, sollte man in dieser Reihenfolge auf Fehlersuche gehen:

  1. Die einfachsten Sachen sind manchmal das größte Problem. Findet der smbd seine Konfiguration? Mittels testparm ist das einfach zu testen, es sucht in dem einkompiliertem Standardverzeichnis nach der smb.conf und prüft ihren Inhalt.
  2. Steht das Netz? Testen Sie das mit ping unter Verwendung der IP-Adresse.
  3. Klappt die Namensauflösung? Testen Sie mit ping, nun aber mit den Rechnernamen.
  4. Sie können auf dem Server die Freigabeliste testen: smbclient -L server
  5. nmblookup -B server __SAMBA__ testet die NetBios-Namensauflösung und sollte die IP des Servers liefern
  6. Suchen Sie vom Server aus die Clients:
    nmblookup -B IP-des-Client '*'
    nmblookup -B IP-des-Client Client
    
    Beide Abfragen sollten mindestens die IP des Clients liefern, wenn nicht, sind die Clients nicht richtig konfiguriert.

Weiter Zurück Inhalt